为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 crypto.js 创建 AES-256 十六进制字符串?

如何使用 crypto.js 创建 AES-256 十六进制字符串?

慕后森 2022-12-09 13:56:27
我想将 json 编码为 AES-256,然后将其转换为十六进制字符串。但是,结果仍然是空的。我怎么解决这个问题?环境:node.jsimport CryptoJS from "crypto-js";const STORE_KEY = "12345678912345678912345678912345"EncryptHex(JSON.stringify(params), "AES");const EncryptHex = (string, chip) => {  let result = "";  try {    if (chip === "AES") {      result = CryptoJS.AES.encrypt(string, STORE_KEY).toString(        CryptoJS.enc.Hex      );        console.log("@@@@@@");        console.log(result); // this is empty        console.log("@@@@@@");    } else {      result = CryptoJS.HmacSHA256(string, STORE_KEY).toString(        CryptoJS.enc.Hex      );    }    return result;  } catch (error) {    throw error;  }};以及我以后如何进行解密?
查看完整描述

2 回答

?
白衣非少年

TA贡献1155条经验 获得超0个赞

我在@Topaco 的帮助下解决了这个问题。


const key = CryptoJS.enc.Utf8.parse(STORE_KEY);

const iv = CryptoJS.enc.Utf8.parse(STORE_IV);

result = CryptoJS.AES.encrypt(string, key, { iv: key });       

result = result.ciphertext.toString();


查看完整回答
反对 回复 2022-12-09
?
三国纷争

TA贡献1804条经验 获得超7个赞

这样做:


const crypto = require('crypto')

const STORE_KEY = ''// your key

function aes256 (string) {

    let result = ''

    const decipher = crypto.createDecipher('aes-256-cbc', STORE_KEY)

    result = decipher.update(string, 'hex', 'utf8')

    result += decipher.final('utf8')

    return result

}

aes256('lalala')

和 SHA256:


let string = '' // your data

let result = crypto.createHmac('SHA256', STORE_KEY).update(string).digest('hex')


查看完整回答
反对 回复 2022-12-09
  • 2 回答
  • 0 关注
  • 117 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信