Sha*_*nty 8 java encryption aes pkcs#7
我正在开发一个Web应用程序来使用java 6加密一些文本.
我必须做的加密是CBC模式的AES(Rijndael),带有PKCS7填充和128位密钥.
我看到一篇文章解释了如何以与我必须做的相同的方式进行加密,但是使用了PKCS5填充.
这篇文章的链接在这里:
我改变
private final static String cI = "AES/CBC/PKCS5Padding";
Run Code Online (Sandbox Code Playgroud)
至
private final static String cI = "AES/CBC/PKCS7Padding";
Run Code Online (Sandbox Code Playgroud)
但Java无法为此找到提供商.
有人能告诉我我该怎么办?
Art*_* B. 18
Java仅提供PKCS#5填充,但它与PKCS#7填充相同.在Crypto.SE上看到这个问题:
它们可以与AES和DES等公共分组密码互换.
小智 7
试试这个方法
String KEY_AES = "**************";
public String encrypt(String value) {
try {
byte[] key = KEY_AES.getBytes("UTF-8");
byte[] ivs = KEY_AES.getBytes("UTF-8");
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7Padding");
SecretKeySpec secretKeySpec = new SecretKeySpec(key, "AES");
AlgorithmParameterSpec paramSpec = new IvParameterSpec(ivs);
cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec, paramSpec);
return Base64.encodeToString(cipher.doFinal(value.getBytes("UTF-8")), Base64.DEFAULT);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
30859 次 |
| 最近记录: |