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();
}

文件下载

最新文章

  1. 运行时使用Dev的ImageListEditor
  2. 循环神经网络(RNN, Recurrent Neural Networks)介绍(转载)
  3. Openvswitch原理与代码分析(5): 内核中的流表flow table操作
  4. paper 71 :图像清晰化
  5. php网页,想弹出对话框, 消息框 简单代码
  6. xmlspy注册后打开报错的解决办法
  7. jquery、js全选反选checkbox
  8. python lambda 用法
  9. LSI MegaCli 命令使用4
  10. Oracle 10g体系机构及安全管理《思维导图》
  11. WPF DataGrid 样式设置
  12. linux debug tools
  13. Oracle 11g OGG 修改 trail 文件大小
  14. Python开发——3.基本数据类型之列表、元组和字典
  15. linux下查找某文件关键字(grep 函数)
  16. C# 整理DotNetBar中SuperGridControl的一些基础属性
  17. POJ 1066 昂贵的聘礼
  18. Gnome排序
  19. Jmeter接口测试自动化 (三)(数据驱动测试)
  20. 简易博客[ html + css ] 练习

热门文章

  1. leetcode844
  2. jQuery自动触发事件
  3. linux系统构架 - LB集群之LVS的DR设置
  4. oracle 的分页与 mySQL&#39;的分页转化
  5. 面试-Android之java基础
  6. git 撤销 merging
  7. built-in SpecularType of Unity
  8. Python shutil 模块学习笔记
  9. OceanBase
  10. Python手机开发调用DLL实现部分ADB功能-乾颐堂