java - 密码 - PHP 中的 AES/CBC/PKCS5padding
问题描述
我在 Java 中有以下代码,我想将其转换为 PHP。有人能告诉我应该如何处理吗?
private static Cipher initCipher(final int mode, final String initialVectorString, final String secretKey)
throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException,
InvalidAlgorithmParameterException {
final SecretKeySpec skeySpec = new SecretKeySpec(secretKey.getBytes(), "AES");
final IvParameterSpec initialVector = new IvParameterSpec(initialVectorString.getBytes());
final Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
cipher.init(mode, skeySpec, initialVector);
return cipher;
}
public static String encrypt(final String dataToEncrypt) {
String encryptedData = null;
try {
// Initialize the cipher
final Cipher cipher = initCipher(Cipher.ENCRYPT_MODE, iv, secretKey);
// Encrypt the data
final byte[] encryptedByteArray = cipher.doFinal(dataToEncrypt.getBytes());
// Encode using Base64
encryptedData = (new BASE64Encoder()).encode(encryptedByteArray);
} catch (Exception e) {
System.err.println("Problem encrypting the data");
e.printStackTrace();
}
return encryptedData;
}
解决方案
推荐阅读
- jenkins - 如何使用 Jenkins 的 Rhapsody 生成代码 - 面对许可证问题
- jquery - 与 LaravelMix 一起使用时缺少 TinyMCE 主题文件
- php - 我应该在 https 上使用什么启动 slim3 应用程序
- c# - 检查 IE/Chrome/FireFox/Safari 中是否安装了 PDF 查看器插件
- java - 如何创建一个泛型方法来返回枚举值数组而不是其常量?
- java - ActiveMQ 错误每 30 分钟 -java.io.IOException:1140 MB 的帧大小大于允许的最大 100 MB
- java - 如何防止在 Spring REST Controller 中创建 HttpSession
- xslt - XSLT - 循环遍历元素并转换为 HTML
- python - 在 Django 中处理用户触发事件的正确方法是什么?
- c - 在 ARM 模拟器上运行 Hello World