首页 > 解决方案 > 密码 - 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;
}

标签: javaphp

解决方案


推荐阅读