我需要帮助来转换PHP中的CryptoJS加密代码
var vRanKey = Math.floor((Math.random() * 8080808080808080) + 1);
var key = CryptoJS.enc.Utf8.parse(vRanKey);
var iv = CryptoJS.enc.Utf8.parse(vRanKey);
var vEncryptedLogin = CryptoJS.AES.encrypt(CryptoJS.enc.Utf8.parse($("#txtUserName").val()), key,
{
keySize: 128 / 8,
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
var vEncryptedPassword = CryptoJS.AES.encrypt(CryptoJS.enc.Utf8.parse($("#txtPassword").val()), key,
{
keySize: 128 / 8,
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
vEncryptedLogin = btoa(vEncryptedLogin)
vEncryptedPassword = btoa(vEncryptedPassword);
我的代码:
$ vRanKey =(int)((float)rand()/(float)getrandmax()* 8080808080808080)+ 1;
$ key = bin2hex($ vRanKey);$ iv = bin2hex($ vRanKey);
$ cipher =“ AES-256-CBC”;
$ username =“ BP000001”;
// $ username = bin2hex($ username);
$ password =“ Admin @ 1234”;
// $ password = bin2hex($ password);
$ vEncryptedLogin = openssl_encrypt($ username,$ cipher,$ key,$ options = 0,$ iv);$ vEncryptedPassword = openssl_encrypt($ password,$ cipher,$ key,$ options = 0,$ iv);
$ vEncryptedLogin = base64_encode($ vEncryptedLogin);
$ vEncryptedPassword = base64_encode($ vEncryptedPassword);
print_r($ vRanKey);
print_r($ vEncryptedLogin);
print_r($ iv);
您可以尝试这样的操作:
<?php
$cryptoStrong = true;
$login = 'login';
$password = 'pass';
$cipher = 'aes-128-gcm';
if (in_array($cipher, openssl_get_cipher_methods(true), true)) {
$ivlen = openssl_cipher_iv_length($cipher);
$key = openssl_random_pseudo_bytes($ivlen, $cryptoStrong);
$iv = openssl_random_pseudo_bytes($ivlen, $cryptoStrong);
$encryptedLogin = openssl_encrypt($login, $cipher, $key, $options = 0, $iv, $tagLogin);
$encryptedPassword = openssl_encrypt($password, $cipher, $key, $options = 0, $iv, $tagPass);
$decryptList['login'] = openssl_decrypt($encryptedLogin, $cipher, $key, $options = 0, $iv, $tagLogin);
$decryptList['password'] = openssl_decrypt($encryptedPassword, $cipher, $key, $options = 0, $iv, $tagPass);
var_dump($decryptList);
}
有关更多示例,请检查php的openssl扩展手册:https://www.php.net/manual/ru/function.openssl-encrypt.php
PS:openssl扩展名通常预先安装在php中,因此您可以直接运行此代码
:)