rsa加密算法及js的JSEncrypt实现前端加密

最近的项目中用到了rsa加密算法,在实现了相关功能之后,我去了解了一下rsa相关原理,于是就写了这篇博客啦。

首先介绍一下什么是rsa加密算法

作为非对称加密算法的老大,rsa号称是地球上最安全的加密算法。

首先了解一些数学背景(我发现我真的好喜欢看数学概念0.0),这里就不再赘诉相关数学背景了,但是请务必要理解这些概念,贴一个我觉着讲得特别清晰的概念,便于理解:

https://blog.csdn.net/u014044812/article/details/80782448

然后介绍一下rsa密钥生成过程:

1.随机选两个不等的质数p和q:

实际应用中如果这两个质数越大就越难破解

2.计算p和q的乘积n

n=p*q
n的长度就是密钥长度,然后把n写成二进制,共有多少位,这个密钥就有多少位,
在一般场景中rsa密钥一般是1024位,重要场合位2048位

3.计算n的欧拉函数φ(n)

4.随机选择一个整数e,条件是1<e<φ(n),且e与φ(n)互质

5.计算e对于φ(n)的模反元素d

ed-kφ(n)=1

(可以利用辗转相除法求的d元素,)

按照公式,d=x=-367,但是一般取正整数,然后d加减φ(n)的n倍都是e的模反元素

所以取d=d+kφ(n)=-367+1x3120=2753

6.将n和e封装成公钥,n和d封装成私钥

公钥:(n,e)

私钥:(n,d)

利用JSEncrypt实现的整个加密过程,具体实现可以看看

https://github.com/travist/jsencrypt

我司现在后端用java实现的解密过程,我现在在前端实现加密过程,列举部分代码

原文地址:https://www.cnblogs.com/yuan233/p/10787469.html

时间: 2024-10-25 00:08:57

rsa加密算法及js的JSEncrypt实现前端加密的相关文章

jsdetox反混淆js内容,解密前端加密参数

https://github.com/svent/jsdetox 这个是一个比较好的反混淆,针对前端加密还是可以调试的 就是安装比较傻逼,需要bundler1.0左右,老子安装了半天没安装上,我曹你吗的 ruby gem 这个垃圾社区  操你吗! 真的是找骂 一个地址换2次... 资料这找不到 那 找不到 针对有人无法安装jsdetox的话 就用这个 https://zeltser.com/docker-application-distribution/ 看下docker ,官方的仓库是有镜像的

jsencrypt参数前端加密c#解密

写程序时一般是通过form表单或者ajax方式将参数提交到服务器进行验证,如何防止提交的请求不被抓包后串改,虽然无法说绝对安全却给非法提交提高了难度,本篇采用jsencypt在前端进行加密的并且用C#在后端解密,在投票提交分数等H5应用上可以使用的上,并且进行简单的封装. 1.demo <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-eq

Java前端Rsa公钥加密,后端Rsa私钥解密(目前还不支持中文加密解密,其他都行)

Base64工具类,可以让rsa编码的乱码变成一串字符序列 1 package com.utils; 2 3 import java.io.ByteArrayInputStream; 4 import java.io.ByteArrayOutputStream; 5 import java.io.File; 6 import java.io.FileInputStream; 7 import java.io.FileOutputStream; 8 import java.io.InputStre

RSA加密算法的简单案例

RSA加密算法是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击. 那关于RSA加密算法有哪些应用呢?以下举一个数据库身份验证的案例. 在使用数据集进行身份认证时,密码存在数据库中,认证时用户输入的密码与数据库中密码相同则认证通过,若数据库被破解了则对系统造成威胁,怎样保证系统安全呢?这里就可以应用RSA加密算法,对权限加密. 思路: 就是在url中传用户名密码时,先把用户名进行翻转,然后再进行加密,如输入的密码为12,实际后台进行加密的值为21,再与数据库进行验证,这样

rsa加密算法,前后端实现。

前端js: 下载地址:http://travistidwell.com/jsencrypt/ js第一版本: 1 // 对数据加密 2 function encrypt(enStr){ 3 //没有加载jsencrypt.js 4 if(typeof(JSEncrypt) != "function"){ 5 return enStr; 6 } 7 if(!window.rsa){ 8 window.rsa = new JSEncrypt(); 9 window.rsa.setPubli

Java培训 关于RSA加密算法有哪些应用呢?

Java培训 关于RSA加密算法有哪些应用呢? RSA加密算法是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击. Java培训关于RSA加密算法有哪些应用呢?以下举一个数据库身份验证的案例. 在使用数据集进行身份认证时,密码存在数据库中,认证时用户输入的密码与数据库中密码相同则认证通过,若数据库被破解了则对系统造成威胁,怎样保证系统安全呢?这里就可以应用RSA加密算法,对权限加密. 思路: 就是在url中传用户名密码时,先把用户名进行翻转,然后再进行加密,如输入的密码为

RSA加密算法详解

研究RSA 不知为何,这几天突然有些心烦.望苍茫大地,凭添几分忧伤,可能是下雨的缘故.本篇主要想详细介绍RSA加密算法的原理,经常听别人说,这里是自己想搞清楚,弄明白.首先介绍了基本的数学原理,然后给出一个具体的计算例子和相关的理论充分性证明. 皓眸大前端开发学习 转载请注明出处:http://www.haomou.net/2014/08/27/2014_rsa/ RSA由来 1976年以前,所有的加密方法都是同一种模式: (1)甲方选择某一种加密规则,对信息进行加密: (2)乙方使用同一种规则

java RSA加密算法

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

【python网络编程】使用rsa加密算法模块模拟登录新浪微博

一.基础知识 http://blog.csdn.net/pi9nc/article/details/9734437 二.模拟登录 因为上学期参加了一个大数据比赛,需要抓取数据,所以就想着写个爬虫抓取新浪微博的数据. 当然抓取数据不是漫无目的的,我需要的是根据关键词来抓取相关微博. 正好微博有一个高级搜索功能,不过要获取更多的微博,需要登录,所以这时就需要模拟登录了. 以下代码是通过rsa加密算法模块来模拟的.需要注意的是,新浪有反爬虫的,所以我们登录的时候要伪装成浏览器. 代码不是自己写的,所以