rsa php前台加密后台解密源码,使用RSA实现前端公钥加密后端私钥解密
项目中在用户登录时需要进行用户名和密码加密,这里选用了RSA非对称加密的方式.
公钥私钥:OpenSSL的公钥私钥(Node crypto模块限制)
前端: jsencrypt库加密
后端: Node crypto模块
使用openssl生成公钥私钥
linux生成公钥私钥命令:
genrsa -out rsa_private_key.pem 1024 // 生成1024位私钥
pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM –nocrypt // 把RSA私钥转换成PKCS8格式
rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem // 生成对应公钥
这里已经生成了公钥和私钥,公钥私钥的使用可以分为两种方式
在使用时使用fs.readFileSync()来读取
直接将公私钥拷贝出来放到配置文件中(私钥要保证正确的换行格式,否则crypto不能正确的使用私钥,可以在每行末尾添加\n\来确保格式正确)
前端使用jsencrypt库加密
这个库可以使用模块加载的方式使用,下面的代码也是使用这种方式,当然也可以在页面中通过
const JSEncrypt = require("jsencrypt"); // 引入模块
const str = "i will be encrypto";
const encrypt = new JSEncrypt.JSEncrypt(); // 实例化加密对象
encrypt.setPublicKey(publicKey); // 设置公钥
const encryptoPasswd = encrypt.encrypt(str) // 加密明文
服务端使用Node crypto模块解密
解密函数实现
function rsaDecrypt(text) {
const privateKey = config.privateKey;
let textBuffer, decryptText;
try {
textBuffer= new Buffer(text, "base64"); // jsencrypt 库在加密后使用了base64编码,所以这里要先将base64编码后的密文转成buffer
decryptText= crypto.privateDecrypt({
key: new Buffer(privateKey), // 如果通过文件方式读入就不必转成Buffer
padding: constants.RSA_PKCS1_PADDING // 因为前端加密库使用的RSA_PKCS1_PADDING标准填充,所以这里也要使用RSA_PKCS1_PADDING
}, textBuffer).toString();
} catch (err) {
throw (new CommonError("errorMsg", errorCode));
}
return decryptText;
}
rsa php前台加密后台解密源码,使用RSA实现前端公钥加密后端私钥解密相关推荐
- 淘宝客优惠券领取微信小程序前台和后台C#源码
一.源码特点 1.这是一个微信小程序对接淘宝的淘宝客api自助搜索优惠券领取程序,简单易学,有兴趣的欢迎下载 2.后台采用asp.netMvc框架开发.实现了调用阿里妈妈的 ...
- rsa加密c语言源码库,RSA加密算法源代码C语言实现.doc-资源下载在线文库www.lddoc.cn...
RSA加密算法_源代码__C语言实现.doc RSA 算法 1978 年就出现了这种算法,它是第一个既能用于数据加密也能用于数字签名的算法.它易于理解和操作,也很流行.算法的名字以发明者的名字命名Ro ...
- 基于java的rsa加密程序_RSA rsa加密程序,rsa java源码和 rsa的jsp Crypt_De algrithms 解密 238万源代码下载- www.pudn.com...
文件名称: RSA下载 收藏√ [ 5 4 3 2 1 ] 开发工具: Java 文件大小: 169 KB 上传时间: 2014-04-23 下载次数: 0 提 供 者: 姚双奇 详细说明: ...
- C#毕业设计——基于C#+asp.net+C++的RSA文件加密系统设计与实现(毕业论文+程序源码)——RSA文件加密系统
基于C#+asp.net+C++的RSA文件加密系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于C#+asp.net+C++的RSA文件加密系统设计与实现,文章末尾附有本毕业设计的论文 ...
- P2P金融借贷项目 前台+后台+数据库源码+移动端后台
P2P金融借贷项目 前台+后台+数据库源码+移动端后台 辛辛苦苦操了一个月的蛋,: 项目运行环境 项目需求 项目基本模块图片 项目运行环境 本文档将从系统架构方面对系统进行综合概述,详细讨论HR项目所 ...
- 基于ASP.NET的精美企业网站后台管理系统源码
ASP.NET精美企业网站后台管理系统源码 源码类型:全开源免费分享,需要源码学习可私信. 很不错的企业网站后台源码,功能齐全,非常适合二次开发和企业应用. 一.前台页面: 1.网站首页 2.关于公司 ...
- java计算机毕业设计服装连锁店后台管理系统源码+mysql数据库+系统+lw文档+部署
java计算机毕业设计服装连锁店后台管理系统源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计服装连锁店后台管理系统源码+mysql数据库+系统+lw文档+部署 本源码技术栈: 项目 ...
- 计算机毕业设计springboot健身中心前台信息管理系统qotli源码+系统+程序+lw文档+部署
计算机毕业设计springboot健身中心前台信息管理系统qotli源码+系统+程序+lw文档+部署 计算机毕业设计springboot健身中心前台信息管理系统qotli源码+系统+程序+lw文档+部 ...
- 海豚php源码,基于 ThinkPHP5.1 实现的海豚后台登录源码分析
基于 thinkphp5.1 实现的海豚后台登录源码分析 一. 首先来到登录代码处,部分代码截图,大家有兴趣可以自己去看源码 登录处开始 public function signin() { if ( ...
最新文章
- Android Studio升级后报 method not found: 'runProguard'的错误
- left join on and 与 left join on where的区别
- mysql binary blob区别_SQL中binary 和 varbinary的区别 blob
- 《C#高级编程》笔记系列第三弹
- 深度学习三巨头共获 2018 年图灵奖(经典重温)!
- 51nod1245 Binomial Coefficients Revenge
- 【北京工业大学申请个人学生邮箱】
- python抢票软件源代码_一百多行python代码实现抢票助手
- 漫反射(diffuse reflection)
- 岌岌可危 中立之争决定云计算未来
- PyG教程(2):图数据
- 写给想学Linux系统的人
- jbox弹窗_Ztree结合jbox实现弹窗树结构
- Centos8.5.211降级为Centos8.4-1.2105
- 常州工学院Java作业03
- 城市太美、生活步调太悠闲
- AR+LBS线下社交游戏尝试
- 嵌入式开发要学习哪些知识
- 作为一名IT狗,天天加班,快变秃子了,我决定去植发……
- WaveProgressBar -- 波浪进度条
热门文章
- php mysql循环语句怎么写_mysql数据库循环语句该怎么写???
- kali linux关闭进程,技术|如何使用 Kali Linux 黑掉 Windows
- MATLAB基础教程(11)——二维中的数据可视化(续)
- 【OpenCV 例程200篇】16. 不同尺寸的图像加法
- java导出csv文件_R语言数据导入与导出
- centos sudo不能运行_如何在Linux中配置sudo访问权限
- 为什么服务器要选择 Linux,这里总结了 10 大理由
- python-week5
- Python测试开发django5.templates模板变量传参
- 哈夫曼树(Huffman Tree)的介绍、画法、哈夫曼树的可视化显示(Python代码实现)