Skip to content
This repository has been archived by the owner on Jan 16, 2024. It is now read-only.

webguosai/cryptojs-php-aes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 

Repository files navigation

cryptojs-php-aes

Latest Stable Version Total Downloads Latest Unstable Version License

运行环境

  • php >= 5.6
  • composer

安装

$ composer require webguosai/cryptojs-php-aes

在php中使用

use \Webguosai\AesCBC;

$array = [
    'name1' => '123',
    'name2' => '456'
];
$key   = 'key123';
$iv    = 'iv34567890123456';

//加密
$encode = AesCBC::encrypt($array, $key, $iv); //d235985c278b9a81acb3ab3b89eee069b0609b8680261589a1b8aca6398a93e1

//解密
$data   = AesCBC::decrypt($encode, $key, $iv);

在JS中使用

npm install crypto-js

<script type="text/javascript" src="node_modules/crypto-js/crypto-js.js"></script>
<script>
//加密
function encrypt(array, key, iv){
    let encrypt = CryptoJS.AES.encrypt(array, CryptoJS.enc.Utf8.parse(key),{
        iv:CryptoJS.enc.Utf8.parse(iv),
        mode:CryptoJS.mode.CBC,
        padding:CryptoJS.pad.Pkcs7
    })
    
    return encrypt.ciphertext.toString(CryptoJS.enc.Hex);
}
//解密
function decrypt(encrypt, key, iv){
    encrypt = CryptoJS.enc.Base64.stringify(CryptoJS.enc.Hex.parse(encrypt));
    
    let decrypted = CryptoJS.AES.decrypt(encrypt, CryptoJS.enc.Utf8.parse(key),{
        iv:CryptoJS.enc.Utf8.parse(iv),
        mode:CryptoJS.mode.CBC,
        padding:CryptoJS.pad.Pkcs7
    })

    return decrypted.toString(CryptoJS.enc.Utf8)
}
</script>

打赏

License

MIT