C# javascript 采用 RSA 加密解密
C# javascript 采用 RSA 加密解密
1.C#提供公钥
2.javascript用公钥加密
3.C#用私钥解密
4.javascript 类库 https://www.pidder.de/pidcrypt/
<script src="pidcrypt.js"></script>
<script src="pidcrypt_util.js"></script>
<script src="asn1.js"></script>
<script src="jsbn.js"></script>
<script src="rng.js"></script>
<script src="prng4.js"></script>
<script src="rsa.js"></script>
<script type="text/javascript">
function submit1() {
var input = document.getElementById("txtPwd").value;
//var n_str = "kaYjgFd9yA68TbFH/E57B3QeO4Ch0+7jFil4HfGqVfACKbUIybBcHuifVKUSYxrdfKQ+cIHPmMq0JpXnOX2Y5AZs7mVUWWlFFu35Rjc4oiKrd0z95opjPp8s6WYIgtr3BDs3ja0W7cCl5xIrDD/5SF4IM9ui9uqy9iHGSG57XRs=";
//var e_str = "AQAB";
var n_str = document.getElementById("txtN").value;
var e_str = document.getElementById("txtE").value;
var n = pidCryptUtil.convertToHex(pidCryptUtil.decodeBase64(n_str));
var e = pidCryptUtil.convertToHex(pidCryptUtil.decodeBase64(e_str)); var rsa = new pidCrypt.RSA();
rsa.setPublic(n, e, 16);
crypted = rsa.encrypt(input);
var result = pidCryptUtil.encodeBase64(pidCryptUtil.convertFromHex(crypted));
document.getElementById("txtPwd").value = result;
}
</script>
protected void Page_Load(object sender, EventArgs e)
{
InitRSA();
} private void InitRSA()
{
if (Session["RSA"] == null)
{
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
Session["RSA"] = rsa.ToXmlString(true);
txtE.Text = Convert.ToBase64String(rsa.ExportParameters(false).Exponent);
txtN.Text = Convert.ToBase64String(rsa.ExportParameters(false).Modulus);
}
} protected void Button1_Click(object sender, EventArgs e)
{
var pwd = txtPwd.Text;
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
//rsa.FromXmlString("<RSAKeyValue><Modulus>kaYjgFd9yA68TbFH/E57B3QeO4Ch0+7jFil4HfGqVfACKbUIybBcHuifVKUSYxrdfKQ+cIHPmMq0JpXnOX2Y5AZs7mVUWWlFFu35Rjc4oiKrd0z95opjPp8s6WYIgtr3BDs3ja0W7cCl5xIrDD/5SF4IM9ui9uqy9iHGSG57XRs=</Modulus><Exponent>AQAB</Exponent><P>ywkLeqqcXpAgx1aaadnFDDDTgjNEnqv0PYlNNMgJ30IHGb+YtOediosMKrM3YZbSRoYrVf9W0UPP0+k5c4VqZQ==</P><Q>t6TCzhVl1hCgwfYGgxOHxGQCsgLwgRLCm5f/RXRfBEvag2RmuiKm9yY6cOHEcrJD9fnFm3t0SJPruaFQhjFxfw==</Q><DP>KQIxrFwLa1onFLwcQib3EshF4DVktbu7gDZcPr3sqIhYkM3PFTL28gW1tmYuWGqzHAV7eUoyid/teTrRHNEktQ==</DP><DQ>PJlX1x1kf2D5S0feGj7FnF7MLOWfa1g/c4ySpd6ixA4ryxPEekOZCRFKU5mMc7SzjGWheY8hbhmxvY2nvsBuDQ==</DQ><InverseQ>dc/pyOJ7UxdUO4kj/bHv7n6PLiS7x6JhkmuXvlxvQb1td4jSVl2EaGROzc9W2SAXWFTa3N4G5KzUYF4CKwSp8A==</InverseQ><D>BQJfyjQ4IT9QfqOQRD82wATgXU+JQU7ABK0ccnszTo1YpbKSQM2N/YomoLSksz/jSjwj4Z61Ux31oDYbo8CMF45MboBNIcqvtDgoL+8kNCUEnjnJ9HIkgn7vO1BozqPRu90P8x5zNQbzRumNM7dgcfjxRMvk4cznHVanz18YuxE=</D></RSAKeyValue>");
rsa.FromXmlString((string)Session["RSA"]);
var bytes1 = Convert.FromBase64String(pwd);
byte[] bytes2 = rsa.Decrypt(bytes1, false);
var p = Encoding.Default.GetString(bytes2);
bytes1 = Convert.FromBase64String(p);
p = Encoding.Default.GetString(bytes1);
TextBox1.Text = p;
Session["RSA"] = null;
InitRSA();
}
C# javascript 采用 RSA 加密解密的更多相关文章
- Java & PHP & Javascript 通用 RSA 加密 解密 (长字符串)
系统与系统的数据交互中,有些敏感数据是不能直接明文传输的,所以在发送数据之前要进行加密,在接收到数据时进行解密处理:然而由于系统与系统之间的开发语言不同. 本次需求是生成二维码是通过java生成,由p ...
- 兼容javascript和C#的RSA加密解密算法,对web提交的数据进行加密传输
Web应用中往往涉及到敏感的数据,由于HTTP协议以明文的形式与服务器进行交互,因此可以通过截获请求的数据包进行分析来盗取有用的信息.虽然https可以对传输的数据进行加密,但是必须要申请证书(一般都 ...
- Java采用RSA加密及解密技术的有关Maven项目的配置流程:
第一步: 获得RSA公钥私钥(秘钥格式:PKCS#8 ,测试使用的是无私钥密码的) 公钥: -----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4G ...
- C# Java间进行RSA加密解密交互
原文:C# Java间进行RSA加密解密交互 这里,讲一下RSA算法加解密在C#和Java之间交互的问题,这两天纠结了很久,也看了很多其他人写的文章,颇受裨益,但没能解决我的实际问题,终于,还是被我捣 ...
- C# Java间进行RSA加密解密交互(三)
原文:C# Java间进行RSA加密解密交互(三) 接着前面一篇C# Java间进行RSA加密解密交互(二)说吧,在上篇中为了实现 /** * RSA加密 * @param text--待加密的明文 ...
- 利用RSACryptoServiceProvider进行RSA加密解密
前言: 本文只介绍How to use,对于加密算法的研究不予讨论. 关于私钥的存储,微软给的建议是使用windows自带的秘钥容器,相见文档. 为了直观看到私钥和公钥,本文直接将其存入XML文件中. ...
- CSS, JavaScript 压缩, 美化, 加密, 解密
CSS, JavaScript 压缩, 美化, 加密, 解密 JS压缩, CSS压缩, javascript compress, js在线压缩,javascript在线压缩,css在线压缩,YUI C ...
- python下RSA加密解密以及跨平台问题
Reference: http://www.cnblogs.com/luchanghong/archive/2012/07/18/2596886.html 项目合作需要,和其他网站通信,消息内容采用 ...
- python RSA加密解密及模拟登录cnblog
1.公开密钥加密 又称非对称加密,需要一对密钥,一个是私人密钥,另一个则是公开密钥.公钥加密的只能私钥解密,用于加密客户上传数据.私钥加密的数据,公钥可以解密,主要用于数字签名.详细介绍可参见维基百科 ...
随机推荐
- [转] 从数据库中读取图片并导入Excel文件,C#方式
原文地址, 作者 Lvyou1980 直接源码吧. using System; using System.IO; using System.Data; using System.Drawing; us ...
- oracle对表常用的操作
最近业务需要给表添加索引,因为数据量很大时,查询效率很低:老大建议使用索引: 之前总结的时候将索引没有记录,当然啦,也怪笔者基础薄弱,不管了,慢慢进步嘛,好了进入正题吧! 首先准备工作,先建两个临时表 ...
- mysql语句与sql语句的基本区别
. MySQL支持enum和set类型,SQL Server不支持: . MySQL不支持nchar.nvarchar.ntext类型: . MySQL数据库的递增语句是AUTO_INCREMENT, ...
- 解决Tomcat 一闪而过的问题
启动tomcat时cmd窗口一闪而过解决方法. 问题现象: 在实际开发中一般都是eclipse+tomcat(也许还会用到tomcat的插件),我们只需要在eclipse中单击servers上的按钮就 ...
- 获取当前UnixTime的零点时间戳
最近有个需求,开屏广告每天只出一次. 思路为如果出了开屏广告,则记录当前时间,下次来的时候,读取当前时间和上一次出开屏的时间. 算一下是不是在同一天即可. 我们的第一个想法是将上次开屏时间和当前时间归 ...
- Ubuntu 安装 kamailio
首先安装前,你已经对kamailio的基本用法了解.可根据情况选择安装方式,本次安装基于Ubuntu18.04系统安装,对于16.04及一下会遇到版本问题,请自己查阅文档解决 安装第三方库 sudo ...
- PHP 数组中出现中文乱码,json_encode返回结果为null 或false
想要解决这个问题,没有特别方便的方法,只有循环数组,将数组中的key和value字符串转码,转换为utf-8,即可解决问题. 代码示例:
- C#窗体中将窗体按钮与键盘关联
当击了某个按钮相当于是按了某个键盘上按键 private void btnPre_Click(object sender, EventArgs e) { this.treeView1.Focu ...
- svn与eclipse的集成(第三方插件与eclipse的集成)
在eclipse中点击Help,选中install from site..
- debian:jessie 安转percona mysql
dpkg -r percona-server-server-5.6 dpkg -r percona-server-client-5.6 dpkg -r libperconaserverclient18 ...