Java等价于PHP函数

时间:2019-03-18 12:14:57

标签: java php encryption cryptography aes

我更喜欢PHP,而且我不知道如何在Java中制作与PHP中相同的encrypt()方法。

我的PHP函数是:

function pad($data, $size) {
    $length = $size - strlen($data) % $size;
    return $data . str_repeat(chr($length), $length);
}

function encrypt($data) {
    $key = "SiadajerSiadajer";
    $iv_size = 16; 
    $iv = openssl_random_pseudo_bytes($iv_size, $strong);
    $encryptedData = openssl_encrypt(pad($data, 16), 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv);
    $joinedData = hex2bin(bin2hex($iv).bin2hex($encryptedData));
    $encodedJoinedData = base64_encode($joinedData);
    return $encodedJoinedData; 
}

鉴于我已经拥有padKey()方法,这是Java中相同的方法:

private byte[] padKey(byte[] key) {
    byte[] paddedKey = new byte[32];
    System.arraycopy(key, 0, paddedKey, 0, key.length);
    return paddedKey;
}

0 个答案:

没有答案