小编典典

带角度的RSA库

node.js

您好,我正在尝试在我的应用程序中实现加密。我在前端使用angular(angular-4),在后端使用node
js。通过socket.io通过自定义命令进行通信。但基本上,我坚持要在客户端中找到用于RSA加密的适当库。客户端将首先向服务器请求RSA公钥。服务器用密钥响应,但是现在我找不到任何适合使用此公共密钥通过RSA加密数据的库。我已经尝试过node-
rsa。以下是代码sn

import * as NodeRSA from 'node-rsa';

@Injectable()

export class SecurityService {
    RSA: any
    initializeRSA(key: string) {
        this.RSA = new NodeRSA();
        this.RSA.importKey(key)
        console.log(this.RSA.encrypt('Hello World'));
    }

但我收到此错误。

Error during encryption. Original error: TypeError: crypt.createHash is not a function
at NodeRSA.webpackJsonp.../../../../node-rsa/src/NodeRSA.js.module.exports.NodeRSA.$$encrypt

帮助将不胜感激。


阅读 221

收藏
2020-07-07

共1个答案

小编典典

请在此处找到解决方案柱塞:

JSEncrypt与角度

https://plnkr.co/edit/sEPK1DcynMphJnGziUVX

我已经使用了JSEncrypt v2.3.0 Lib。

实作

在Angular Project的Asset文件夹中添加JSEncrypt Lib javascript文件。在中添加脚本index.html

<script src="jsencrypt.js"></script>

因此,它将在所有组件上可用。

在要使用它的组件文件中声明JSEncrypt。

declare var JSEncrypt: any;

内部类声明变量

decrypt = new JSEncrypt();
const privatekey = Private Key goes here;
const publickey = Public key goes here;
const decryptDataRow = Decrypted data string;
this.decrypt.setPrivateKey(privatekey);
this.decryptdata = this.decrypt.decrypt(decryptDataRow);

decryptdata 包含结果字符串

2020-07-07