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.公开密钥加密 又称非对称加密,需要一对密钥,一个是私人密钥,另一个则是公开密钥.公钥加密的只能私钥解密,用于加密客户上传数据.私钥加密的数据,公钥可以解密,主要用于数字签名.详细介绍可参见维基百科 ...
随机推荐
- asp.net(c#)GridView实现鼠标悬停高亮显示
搜索了一下,发现对于这种基本都使用girdview中的RowDataBound事件完成,下面看看网上提供的简单方法protected void GridView1_RowDataBound(objec ...
- 关于java中的OutOfMemory种类和解决方法
1.OutOfMemory的三种情况 1) 永久区溢出 Exception in thread "main" java.lang.OutOfMemoryError: PermGen ...
- JavaScript 修改元素值
document.getElementById('yybz').value=jsdata.toLocaleString(); document.getElementById('yybz').inner ...
- redis在linux下的安装和配置
1 Installation Download, extract and compile Redis with: $ wget http://download.redis.io/releases/re ...
- FP寻源报错
ERROR [HY000] [Oracle][ODBC][Ora]ORA-01114: IO error writing block to file (block # ) ORA-01114: I ...
- 【uva1658 算法竞赛入门经典】海军上将【费用流】
题意 给出一个v(3<=v<=1000)个点e(3<=e<=10000)条边的有向加权图,求1-v的两条不相交(除了起点和终点外没有公共点)的路径,使得权和最小. 分析 费用流 ...
- JAVA 定时器的三种方法
/** * 普通thread * 这是最常见的,创建一个thread,然后让它在while循环里一直运行着, * 通过sleep方法来达到定时任务的效果.这样可以快速简单的实现,代码如下: * @au ...
- 快速上手Runtime(一)之消息机制
Runtime简介 Runtime简称运行时.OC就是运行时机制,也就是在运行时候的一些机制,其中最主要的是消息机制. 对于C语言,函数的调用在编译的时候会决定调用哪个函数. 对于OC的函数,属于动态 ...
- 微软人工智能公开课 https://mva.microsoft.com/colleges/microsoftai#!jobf=Developer
https://mva.microsoft.com/colleges/microsoftai#!jobf=Developer
- socket,TCP/IP的理解(转)
TCP/IP 要想理解socket首先得熟悉一下TCP/IP协议族, TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间 ...