使用CryptoJS解密AES密文

时间:2019-11-14 23:01:46

标签: javascript encryption cryptography aes cryptojs

我正在尝试按照图中所示的说明完成蓝牙智能卡阅读器和移动应用程序之间的相互身份验证。

根据我对说明的理解,这是我的尝试:

const randomNumbers = 'd3be845b701b37eff9f24ea6108c0f99';
const masterKey = '41435231323535552d4a312041757468';

const d1 = CryptoJS.AES.decrypt(
  {
    ciphertext: CryptoJS.enc.Hex.parse(randomNumbers),
  },
  CryptoJS.enc.Hex.parse(masterKey),
  {
    iv: CryptoJS.enc.Hex.parse('00000000000000000000000000000000'),
    mode: CryptoJS.mode.CBC,
    padding: CryptoJS.pad.NoPadding,
  },
),

const combined = randomNumbers.concat(d1.toString());

const d2 = CryptoJS.AES.decrypt(
  {
    ciphertext: CryptoJS.enc.Hex.parse(combined),
  },
  CryptoJS.enc.Hex.parse(masterKey),
  {
    iv: CryptoJS.enc.Hex.parse('00000000000000000000000000000000'),
    mode: CryptoJS.mode.CBC,
    padding: CryptoJS.pad.NoPadding,
  },
);

当我将其放到完整的转义命令中并将其发送给阅读器时,会收到确认格式正确的响应。问题在于响应中不包含会话密钥,这意味着我的加密无法正常工作,而且我无法解锁全部阅读器功能。

根据下面的解密说明,是否可能我误解了此过程?

enter image description here

0 个答案:

没有答案