Saleforce的AES加密解密apex代码举例
时间: 2024-12-16 08:21:41 浏览: 4
在Salesforce中,你可以使用Apex(一种基于Java的强类型、面向对象的语言)的内置库javax.crypto.Cipher来进行AES(Advanced Encryption Standard)的加密和解密操作。以下是一个简单的例子:
```java
// 导入所需的包
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
// 首先,你需要创建一个KeyGenerator实例并生成一个密钥
KeyGenerator keyGen = KeyGenerator.getInstance("AES");
keyGen.init(256); // AES默认是128位,这里设置为256位增强安全性
SecretKeySpec secretKey = new SecretKeySpec(keyGen.generateKey().getEncoded(), "AES");
// 创建初始化向量(IV),用于保证每次加密结果的唯一性
byte[] iv = new byte[16];
SecureRandom secureRandom = new SecureRandom();
secureRandom.nextBytes(iv);
IvParameterSpec ivSpec = new IvParameterSpec(iv);
// 初始化Cipher对象,ENCRYPT_MODE表示加密
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, secretKey, ivSpec);
// 要加密的数据
String dataToEncrypt = 'This is a sample text to encrypt';
byte[] encryptedData = cipher.doFinal(dataToEncrypt.getBytes());
// 解密过程类似,只需要将init模式改为DECRYPT_MODE
cipher.init(Cipher.DECRYPT_MODE, secretKey, ivSpec);
// 从加密数据恢复原始数据
String decryptedText = new String(cipher.doFinal(encryptedData));
System.debug('Encrypted Data: ' + encryptedData);
System.debug('Decrypted Text: ' + decryptedText);
阅读全文