繁体   English   中英

如何在angular6项目中实现bcrypt

[英]How to implement bcrypt in an angular6 project

嗨,我正在尝试使用bcrypt npm 包对密钥进行哈希处理,但它引发了我的错误。 到目前为止,我已经尝试过这段代码。

import * as bcrypt from 'bcrypt';

export class LowLevelEncryption {

    encrypt(key: string){
        console.log(bcrypt);
         bcrypt.hash(key, 19, function(err, hash) {
           Store hash in your password DB.
         });
    }

}

它会抛出许多这样的错误:-

Module not found: Error: Can't resolve 'tls' in '/home/ec2-user/environment/passcript/node_modules/tunnel-agent'

请有人帮助我或任何人都知道任何其他图书馆。 谢谢

您可以尝试使用 crypto-js,并使用您需要的任何策略,例如:

    import { Injectable } from '@angular/core';
    import * as crypto from 'crypto-js';

    @Injectable()
    export class CryptoService {

    constructor() {
    }


   encrypt(key: any, privateKey: any) {
     const cryptkey = crypto.enc.Utf8.parse(privateKey);
     const encrypted = crypto.AES.encrypt(key, cryptkey, {
      iv: crypto.enc.Hex.parse('00000000000000000000000000000000'),
      mode: crypto.mode.ECB,
      padding: crypto.pad.Pkcs7
   });
   return encrypted.toString();
  }


  decrypt(cryptedKey: any, privateKey: any) {
    const cryptoPrivateKey = crypto.enc.Utf8.parse(privateKey);
    const encryptedKey = crypto.enc.Base64.parse(cryptedKey);
    const decrypted = crypto.AES.decrypt({ciphertext: encryptedKey}, cryptoPrivateKey, {
      iv: crypto.enc.Hex.parse('00000000000000000000000000000000'),
      mode: crypto.mode.ECB,
      padding: crypto.pad.Pkcs7
   });
   return decrypted.toString(crypto.enc.Utf8);
  }
}

甚至更简单:加密

const encryptedPassword = crypto.AES.encrypt(value, 'password');

并解密

const bytes  = crypto.AES.decrypt(encryptedPassword, 'password');
const decryptedPassword = bytes.toString(crypto.enc.Utf8);

希望这可以帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM