首页 > 解决方案 > 如何在Angular中解密随机生成的加密值

问题描述

我正在尝试解密加密的字符串值。每次将字符串值加密为随机值。但是解密时我无法获得原始值。它的空白不打印任何东西。这是我的代码。

get( keys, value) {
    const key = CryptoJS.enc.Utf8.parse(keys);
   
    const iv = CryptoJS.lib.WordArray.random(128 / 8);
    const encrypted = CryptoJS.AES.encrypt(CryptoJS.enc.Utf8.parse(value.toString()), key,
      {
        keySize: 128 / 8,
        iv,
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.Pkcs7
      });

    return encrypted.toString();

    }

    set(keys, value) {
      const key = CryptoJS.enc.Utf8.parse(keys);
      const iv = CryptoJS.lib.WordArray.random(128 / 8);
      const decrypted = CryptoJS.AES.decrypt(value, key, {
        keySize: 128 / 8,
        iv,
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.Pkcs7
      });
      return decrypted.toString(CryptoJS.enc.Utf8);
    }

   this.encryptedId = this.Service.get('1$#@^@1EFR#', this.code);
   this.decryptedId = this.Service.set('1$#@^@1EFR#', params.id);

如果我使用const iv = CryptoJS.enc.Utf8.parse(keys);而不是const iv = CryptoJS.lib.WordArray.random(128 / 8);它的工作。但是每次都加密为相同的值。如何解密随机加密的值?

标签: angulartypescriptencryption

解决方案


推荐阅读