Angular前端使用jsencrypt对数据进行RSA加密

Angular前端使用jsencrypt对数据进行RSA加密

一、什么是RSA

RSA算法是一种非对称加密算法。

非对称加密算法需要两个密钥来进行加密和解密,这两个密钥是公开密钥和私有密钥。

非对称加密的模式规则是:

后端生成两把密钥(和私钥),是公开的,任何人都可以获得,私钥是保密的;前端获取乙方的公钥,然后对它进行信息加密;乙方得到加密后的信息,用私钥解密。

前端需要做的工作即获取后端的公钥,然后对它进行信息加密,使用步骤如下:

1.安装模块

npm install --save jsencrypt

2.在需要进行加密操作的模块中使用

import * as JsEncryptModule from 'jsencrypt';
export class RsaUtil {

    constructor() { }

    public getSignStr(timestr: string) {
        let publicKey = '-----BEGIN PUBLIC KEY-----公钥-----END PUBLIC KEY-----';
        let privateStr = "这是一个测试密码";
        let encrypt = new JsEncryptModule.JSEncrypt();
        console.log(encrypt);
        encrypt.setPublicKey(publicKey);
        let signature = encrypt.encrypt(privateStr + timestr);
        console.log(signature);
        return signature;
    }

}

3.后端解密

前端将加密后的信息发送给后端,后端解密,即完成了这一次的加密过程。

注意:此时line9是报错的,可以采取以下方式解决:

在src文件夹中,创建一个名为@types的文件夹,在其中创建另一个包含名称的文件夹,即jsencrypt,最后在其中创建一个index.d.ts:

project_folder/src/@types/jsencrypt/index.d.ts内容如下:

declare module 'jsencrypt';

 

本文转载自:gaiery,版权归原作者所有,本博客仅以学习目的的传播渠道,不作版权和内容观点阐述,转载时根据场景需要有所改动。