前端安全策略--RSA加密方案

2018-12-242314

tags: 加密

RSA的WEB前端密码加密方案

RSA是什么?

RSA公钥加密算法是1977年由Ron Rivest、Adi Shamirh和LenAdleman在(美国麻省理工学院)开发的。RSA取名来自开发他们三者的名字。RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准。目前该加密方式广泛用于网上银行、数字签名等场合。RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。

RSA加密

RSA是一种非对称加密,也就是客户端通过公钥进行加密,服务端通过私钥进行解密。RSA算法请点击百度百科进行了解。 也就是说公钥并不能进行解密,因此进行明文传输也是安全的。

流程

一般公钥和密钥都是有后台生成,前端使用公钥进行加密

//先定义并储存公钥
export const PUK = `-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCoyDEFq1rLcjseKpvHeHYcFqZWxvmBoF0cAoi4Ggydc76Pz4bwcPvrDLB1/sMVE6a7ZtBiCCg2K6yTG2T+xHRZLL9V6o7TRMiRnh6dFW34YjTUuIWRyYZLOk9pr/trQp+1k1XIvbWGz/zJizuAKT3jIvgwIDAQABirmgBOruP7LZ+BRtBR
-----END PUBLIC KEY-----`;

//使用下面方法进行加密
export const encryptDataInUtils = (input_rsa = '', pk = PUK) => {
    var encrypt_rsa = new RSA.RSAKey();
    var encrypt_rsa = RSA.KEYUTIL.getKey(pk);  
    var encStr = encrypt_rsa.encrypt(input_rsa)  
    encStr = RSA.hex2b64(encStr);
    return encStr;
}

//调用方法
encryptDataInUtils('加密内容')

后台进行解密,并返回结果

作者简介:何永峰,芦苇科技web前端开发工程师,喜欢到处寻找好吃的,爱好跳舞,打篮球,听音乐,目前是Acum.Revolution現狀革命成员之一,不定期出席大型的舞蹈商演活动。代表作品:萌鸡驾到小游戏、美旅出行小程序、Nice电竞小程序。擅长网站建设、微信公众号开发、微信小程序开发、小游戏制作、企业微信制作、H5建设,专注于前端框架、交互设计、图像绘制、数据分析等研究。

欢迎和我们一起并肩作战: web@talkmoney.cn 访问 www.talkmoney.cn 了解更多

提供专业的微信公众号建设,广州钉钉开发,靠谱的企业微信开发,深圳微信小程序建设,高质量的小游戏外包,东莞H5开发

分享
点赞1
打赏
上一篇:代理工具Fiddler -调试与替换接口状态
下一篇:使用自定义组件与antd的表单双向绑定