相关文章推荐
面冷心慈的牛腩  ·  安卓手机电脑同步型号规格 - 京东·  2 年前    · 
淡定的跑步鞋  ·  通知中心的安卓推送通知是一个灰色图标·  2 年前    · 
冷静的牛肉面  ·  Windows系统python3环境tkin ...·  2 年前    · 
Code  ›  javascript - 用 PHP 加密,用 Javascript 解密(cryptojs) -
脚本 javascript php解密 php加密
https://segmentfault.com/q/1010000042657340
任性的刺猬
2 年前
segmentfault segmentfault
注册登录
问答 博客 标签 活动
发现
✓ 使用“Bing”搜本站 使用“Google”搜本站 使用“百度”搜本站 站内搜索
注册登录
  1. 首页
  2. 问答
  3. Stack Overflow 翻译
  4. 问答详情

用 PHP 加密,用 Javascript 解密(cryptojs)

社区维基
1
发布于
2022-10-20
新手上路,请多包涵

我在基本加密/解密方面遇到问题。我到处寻找一个工作示例,但还没有找到一个工作示例。

-我将在 php 中加密,用 cryptojs 解密以获得一小层安全性

<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/aes.js">
$text = "this is the text here";
$key = "encryptionkey";
$msgEncrypted = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_CBC, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND));
$msgBase64 = trim(base64_encode($msgEncrypted));
echo "<h2>PHP</h2>";
echo "<p>Encrypted:</p>";
echo $msgEncrypted;
echo "<p>Base64:</p>";
echo $msgBase64;
<p>AES Decrypt</p>
<script>
    var key = 'encryptionkey';
    var encrypted = "<?php echo $msgBase64 ?>";
    //tried  var base64decode = CryptoJS.enc.Base64.parse(encrypted);
    var decrypted = CryptoJS.AES.decrypt(encrypted, key);
    console.log( decrypted.toString(CryptoJS.enc.Utf8) );
</script>

我错过了哪一步?

原文由 user2769 发布,翻译遵循 CC BY-SA 4.0 许可协议

Stack Overflow 翻译 javascript php encryption cryptojs
阅读 540
1 个回答
得票 最新
社区维基
1
发布于
2022-10-20

加密 Javascript

 <script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.1.1/crypto-js.min.js" integrity="sha512-E8QSvWZ0eCLGk4km3hxSsNmGWbLtSCSUcewDQPQWZF6pEU8GlT8a5fF32wOl1i8ftdMhssTrF/OhyGWwonTcXA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
    <script>
        function encrypt(str) {
  var encoded = "";
  for (i=0; i<str.length;i++) {
    var a = str.charCodeAt(i);
    var b = a ^ 51;    // bitwise XOR with any number, e.g. 123
    encoded = encoded+String.fromCharCode(b);
  return btoa(encoded);

PHP解密

 function decrypt($encoded) {
$encoded =base64_decode($encoded);
  $decoded = "";
  for( $i = 0; $i < strlen($encoded); $i++ ) {
    $b = ord($encoded[$i]);
    $a = $b ^ 51;  // <-- must be same number used to encode the character
    $decoded .= chr($a);
  return $decoded;

KEY -PHP 解密

function decrypt($passphrase, $enc_text)
        $enc_text = json_decode($enc_text, true);
        try {
            $slam_ol = hex2bin($enc_text["slam_ltol"]);
            $iavmol  = hex2bin($enc_text["iavmol"]);
        } catch (Exception $e) {
            return null;
        $ciphertext = base64_decode($enc_text["amtext"]);
        $iterations = 999;
        $key = hash_pbkdf2("sha512", $passphrase, $slam_ol, $iterations, 64);
        $decrypted = openssl_decrypt($ciphertext, 'aes-256-cbc', hex2bin($key), OPENSSL_RAW_DATA, $iavmol);
        return $decrypted;

KEY -javascript 加密

<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.1.1/crypto-js.min.js" integrity="sha512-E8QSvWZ0eCLGk4km3hxSsNmGWbLtSCSUcewDQPQWZF6pEU8GlT8a5fF32wOl1i8ftdMhssTrF/OhyGWwonTcXA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
    <script>
        function encrypt(passphrase, plain_text) {
            var slam_ol = CryptoJS.lib.WordArray.random(256);
            var iv = CryptoJS.lib.WordArray.random(16);
            var key = CryptoJS.PBKDF2(passphrase, slam_ol, {
                hasher: CryptoJS.algo.SHA512,
                keySize: 64 / 8,
                iterations: 999
            var encrypted = CryptoJS.AES.encrypt(plain_text, key, {
                iv: iv
            var data = {
                amtext: CryptoJS.enc.Base64.stringify(encrypted.ciphertext),
                slam_ltol: CryptoJS.enc.Hex.stringify(slam_ol),
                iavmol: CryptoJS.enc.Hex.stringify(iv)
            return JSON.stringify(data);
 
推荐文章
面冷心慈的牛腩  ·  安卓手机电脑同步型号规格 - 京东
2 年前
淡定的跑步鞋  ·  通知中心的安卓推送通知是一个灰色图标
2 年前
冷静的牛肉面  ·  Windows系统python3环境tkinter不可用问题 - pywjh - 博客园
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号