在PHP中转换CryptoJS加密

问题描述 投票:-1回答:1

我需要帮助来转换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 encryption cryptojs
1个回答
0
投票

您可以尝试这样的操作:

<?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中,因此您可以直接运行此代码

:)

© www.soinside.com 2019 - 2024. All rights reserved.