javaWeb RSA加密使用
加密算法在各个网站运用很平常,今天整理代码的时候看到了我们项目中运用了RSA加密,就了解了一下。
先简单说一下RSA加密算法原理,RSA算法基于一个十分简单的数论事实:将两个大质数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。
RSAPublicKey rsap;
rsap = (RSAPublicKey) RSAUtil.getKeyPair().getPublic();
//模
String module = rsap.getModulus().toString(16);
//公钥指数
String empoent = rsap.getPublicExponent().toString(16);
request.setAttribute("m", module);
request.setAttribute("e", empoent);
这是java代码,简单来说就是将模和公钥指数传回到前台页面上,按我的理解module就是上面所说的n,empoent也就是上面说的e1。
接着是Javascript的处理,先引入3个js文件RSA.js,BigInt.js,Barrett.js(网上可以随便找到)
function doEncrypt(){
var result = $("#password").val();
setMaxDigits(130);
//3个参数,分别是公钥指数,私钥指数,module (一般module是1024位的长度,私钥肯定是不会传到前台的)
key = new RSAKeyPair("12345","","12a3d32ad");
//生成密文
result = encryptedString(key, encodeURIComponent(result));
$("#encrypt").attr("value", 1);
$("#pwd").attr("value", result);
}
之后就把生成的公钥生成的公钥传回去就行了。
RSAUtils.decryptByPrivateKey(mi, priKey);
然后把传回去的密文通过私钥进行解密就行了,大致过程就是这样。
PS:本人是以登录作为例子进行讲解的。
javaWeb RSA加密使用的更多相关文章
- RSA加密公钥系数获取结果多00
写在前面 本文是在解决加密和解密用的不是同一套密钥对时找到的一篇, 最后问题不在byte数组, 是自己工具类中生成密钥对的问题, 但是本文RSA加密中公钥指数和公钥系数的获取(byte[]部分)讲解比 ...
- “不给力啊,老湿!”:RSA加密与破解
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 加密和解密是自古就有技术了.经常看到侦探电影的桥段,勇敢又机智的主角,拿着一长串毫 ...
- .NET 对接JAVA 使用Modulus,Exponent RSA 加密
最近有一个工作是需要把数据用RSA发送给Java 虽然一开始标准公钥 net和Java RSA填充的一些算法不一样 但是后来这个坑也补的差不多了 具体可以参考 http://www.cnblogs. ...
- Android数据加密之Rsa加密
前言: 最近无意中和同事交流数据安全传输的问题,想起自己曾经使用过的Rsa非对称加密算法,闲下来总结一下. 其他几种加密方式: Android数据加密之Rsa加密 Android数据加密之Aes加密 ...
- 兼容javascript和C#的RSA加密解密算法,对web提交的数据进行加密传输
Web应用中往往涉及到敏感的数据,由于HTTP协议以明文的形式与服务器进行交互,因此可以通过截获请求的数据包进行分析来盗取有用的信息.虽然https可以对传输的数据进行加密,但是必须要申请证书(一般都 ...
- RSA加密例子和中途遇到的问题
在进行RSA加密例子 package test; import java.io.IOException; import java.security.Key; import java.security. ...
- iOS中RSA加密详解
先贴出代码的地址,做个说明,因为RSA加密在iOS的代码比较少,网上开源的也很少,最多的才8个星星.使用过程中发现有错误.然后我做了修正,和另一个库进行了整合,然后将其支持CocoaPod. http ...
- iOS动态部署之RSA加密传输Patch补丁
概要:这一篇博客主要说明下iOS客户端动态部署方案中,patch(补丁)是如何比较安全的加载到客户端中. 在整个过程中,需要使用RSA来加密(你可以选择其它的非对称加密算法),MD5来做校验(同样,你 ...
- Java使用RSA加密解密及签名校验
该工具类中用到了BASE64,需要借助第三方类库:javabase64-1.3.1.jar注意:RSA加密明文最大长度117字节,解密要求密文最大长度为128字节,所以在加密和解密的过程中需要分块进行 ...
随机推荐
- Http服务器性能测试工具ab..
-A auth-username:password 对服务器提供BASIC认证信任.用户名和密码由一个:隔开,并以base64编码形式发送,无论服务器是否需要(即,是否发送了401认证需求代码),此字 ...
- 扩展编写jquery插件的方法
比如要扩展验证功能(jquery.validate.js)中的 messages: { required: "This field is required.", remote: & ...
- Canvas -画图
2014-09-30 09:14:57 <!doctype html> <html> <head> <title> </title> < ...
- [转]MVC模式已死?何不试试MOVE
在36Kr看到一篇译文,主要是提出一些新的概念,升华老的MVC模式.看上很不错,转过来,做个记录. ========================= 华丽的分割线 ================= ...
- CCI_chapter 13C++
13.9Write a smart pointer (smart_ptr) class template<class T>class SmartPoint{ public: SmartPo ...
- windows bat命令编写大全
1 echo 和 @ @ #关闭单行回显echo off #从下一行开始关闭回显 @echo off #从本行开始关闭回显.一般批处理第一行都是这个 echo on #从下一行开始打开回显 ec ...
- Windows 8.1 explorer.exe总是崩溃的解决办法
方法1 卸载此补丁 KB3033889 方法2 打补丁, 更新 3033889 导致使用日语. 朝鲜语和中文输入法的系统中 Windows 资源管理器停止响应 https://support.micr ...
- 简要介绍如何集成Vitamio安卓版SDK
1.下载VitamioBundle的最新稳定,这里下载的是最新版4.2.2. 2.解压缩后,导入 Vitamio 库工程(即vitamio)和Demo工程(即vitamio--sample)到 Ecl ...
- move 表索引失效
SQL> select INDEX_NAME,status from user_indexes; INDEX_NAME STATUS ------------------------ ...
- mysql if对数据进行处理 having对数据进行查询 thinkphp中的exp支持更复杂的where查询
很多时候,数据库获取的信息并不是我们最终想要的,需要通过if进行处理. where支持查询 having支持后查询(查询后的数据,再筛选) 代码如下: if ($this->_post('dos ...