- 浏览: 480940 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (339)
- C# (2)
- Java集合 (7)
- Java设计模式 (15)
- Java基础 (31)
- Java-Spring (7)
- Java-Spring AOP (9)
- Java-Spring Transaction (6)
- Java-Hibernate (13)
- Jsp (7)
- JSTL (2)
- 加密解密 (13)
- sql (3)
- 数据库技术 (7)
- JQuery (2)
- css (3)
- JavaScript (19)
- Linux (34)
- 项目管理 (5)
- Tomcat (5)
- Oracle (4)
- axis2 (5)
- Linux c/c++ (40)
- Linux 防火墙及抓包分析 (10)
- Linux 环境配置 (3)
- Linux 高级命令 (14)
- Linux Server 配置 (9)
- c++ 内存管理 (4)
- JUnit (1)
- SSL 通信 (2)
- windows 系统调试 (8)
- 字符串处理 (8)
- 排序算法 (7)
- ACE (1)
- IT技术 (1)
- 敏捷开发 (1)
- TCPIP (4)
- 汇编语言 (7)
- STL (2)
- Struts (1)
- iBatis (3)
- 音视频开发 (2)
- Java多线程 (3)
- 架构设计 (2)
- Java网络编程 (1)
- Ubantu (0)
- Eclipse (2)
最新评论
-
df270464278:
请问博主有遇到中文乱码的问题吗?就是json字符串里面包含中文 ...
cur发送json字符串, post 请求 -
ykbj117:
你们知道刘绍华么?就是北邮的一个教授,专门研究WebRTC的资 ...
WebRTC -
隐形的翅膀:
不会用powershell
去除SVN标志 -
lengbamboo:
改注册表比较危险,给个powershell的脚本:powers ...
去除SVN标志 -
hedong56:
[/b][b][i][/i][u][/u][flash=20 ...
JAVASCRIPT定义对象的四种方式
实现类
测试程序
using System; using System.Collections.Generic; using System.Text; using System.Security.Cryptography; using System.IO; using System.Xml; namespace MyRSA { class RSAUtil { public void CreateRSAKey() { RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(); RSAParameters keys = rsa.ExportParameters(true); String pkxml = "<root>\n<Modulus>" + ToHexString(keys.Modulus) + "</Modulus>"; pkxml += "\n<Exponent>" + ToHexString(keys.Exponent) + "</Exponent>\n</root>"; String psxml = "<root>\n<Modulus>" + ToHexString(keys.Modulus) + "</Modulus>"; psxml += "\n<Exponent>" + ToHexString(keys.Exponent) + "</Exponent>"; psxml += "\n<D>" + ToHexString(keys.D) + "</D>"; psxml += "\n<DP>" + ToHexString(keys.DP) + "</DP>"; psxml += "\n<P>" + ToHexString(keys.P) + "</P>"; psxml += "\n<Q>" + ToHexString(keys.Q) + "</Q>"; psxml += "\n<DQ>" + ToHexString(keys.DQ) + "</DQ>"; psxml += "\n<InverseQ>" + ToHexString(keys.InverseQ) + "</InverseQ>\n</root>"; SaveToFile("publickey.xml", pkxml); SaveToFile("privatekey.xml", psxml); } public RSACryptoServiceProvider CreateRSADEEncryptProvider(String privateKeyFile) { RSAParameters parameters1; parameters1 = new RSAParameters(); StreamReader reader1 = new StreamReader(privateKeyFile); XmlDocument document1 = new XmlDocument(); document1.LoadXml(reader1.ReadToEnd()); XmlElement element1 = (XmlElement)document1.SelectSingleNode("root"); parameters1.Modulus = ReadChild(element1, "Modulus"); parameters1.Exponent = ReadChild(element1, "Exponent"); parameters1.D = ReadChild(element1, "D"); parameters1.DP = ReadChild(element1, "DP"); parameters1.DQ = ReadChild(element1, "DQ"); parameters1.P = ReadChild(element1, "P"); parameters1.Q = ReadChild(element1, "Q"); parameters1.InverseQ = ReadChild(element1, "InverseQ"); CspParameters parameters2 = new CspParameters(); parameters2.Flags = CspProviderFlags.UseMachineKeyStore; RSACryptoServiceProvider provider1 = new RSACryptoServiceProvider(parameters2); provider1.ImportParameters(parameters1); return provider1; } public RSACryptoServiceProvider CreateRSAEncryptProvider(String publicKeyFile) { RSAParameters parameters1; parameters1 = new RSAParameters(); StreamReader reader1 = new StreamReader(publicKeyFile); XmlDocument document1 = new XmlDocument(); document1.LoadXml(reader1.ReadToEnd()); XmlElement element1 = (XmlElement)document1.SelectSingleNode("root"); parameters1.Modulus = ReadChild(element1, "Modulus"); parameters1.Exponent = ReadChild(element1, "Exponent"); CspParameters parameters2 = new CspParameters(); parameters2.Flags = CspProviderFlags.UseMachineKeyStore; RSACryptoServiceProvider provider1 = new RSACryptoServiceProvider(parameters2); provider1.ImportParameters(parameters1); return provider1; } private byte[] ReadChild(XmlElement parent, string name) { XmlElement element1 = (XmlElement)parent.SelectSingleNode(name); return hexToBytes(element1.InnerText); } private string ToHexString(byte[] bytes) // 0xae00cf => "AE00CF " { string hexString = string.Empty; if (bytes != null) { StringBuilder strB = new StringBuilder(); for (int i = 0; i < bytes.Length; i++) { strB.Append(bytes[i].ToString("X2")); } hexString = strB.ToString(); } return hexString; } public byte[] hexToBytes(String src) { int l = src.Length/2; String str; byte[] ret = new byte[l]; for (int i = 0; i < l; i++) { str = src.Substring(i * 2, 2); ret[i] = Convert.ToByte(str, 16); } return ret; } public void SaveToFile(String filename, String data) { System.IO.StreamWriter sw = System.IO.File.CreateText(filename); sw.WriteLine(data); sw.Close(); } public string EnCrypt(string str) { RSACryptoServiceProvider rsaencrype = CreateRSAEncryptProvider("publickey.xml"); String text = str; byte[] data = new UnicodeEncoding().GetBytes(text); byte[] endata = rsaencrype.Encrypt(data, true); return ToHexString(endata); } public string DoEncrypt(string hexstr) { RSACryptoServiceProvider rsadeencrypt = CreateRSADEEncryptProvider("privatekey.xml"); byte[] miwen = hexToBytes(hexstr); byte[] dedata = rsadeencrypt.Decrypt(miwen, true); return System.Text.UnicodeEncoding.Unicode.GetString(dedata); } } }
测试程序
using System; using System.Collections.Generic; using System.Text; using System.Security.Cryptography; namespace MyRSA { class Program { static void Main(string[] args) { Console.WriteLine("\n encrypt and de_encrypt test:\n==========================="); RSAUtil rsa = new RSAUtil(); //rsa.CreateRSAKey() Console.WriteLine("Please input a string\n"); string mingwen = Console.ReadLine(); string miwen = rsa.EnCrypt(mingwen); string jiemiwen=rsa.DoEncrypt(miwen); Console.WriteLine("Ming Wen is :"+mingwen+"\n"); Console.WriteLine("Mi Wen is :"+miwen+"\n"); Console.WriteLine("Jie Mi hou is :"+jiemiwen+"\n"); Console.ReadLine(); } } }
发表评论
-
CAS的安全性
2011-05-12 09:58 12242.3 CAS 安全性 CAS 的安全性是一个非 ... -
对称加密算法概述
2011-04-15 14:52 12951. 对称加密 对大多 ... -
Commons 与 Bouncy 的 URLBase64 实现
2011-04-02 21:08 12741. Bouncy Castle import org.bou ... -
commons codec 提供的消息摘要算法, MD与SHA算法
2011-04-02 20:57 20741. import org.apache.commons.co ... -
消息摘要算法
2011-03-24 10:50 1789消息摘要算法 1. 概念 消息摘要算法的主要特征是加密过程 ... -
SUN 提供的消息摘要算法 MD与SHA
2011-03-24 10:28 1473SUN 提供的消息摘要算法 接收任意大小的数据,并输出固定长 ... -
COMMON CODEC 十六进制与byte之间的转换
2011-03-23 10:48 2406COMMON CODEC HEX 字符串十六进制之间转换 ... -
COMMON CODEC BASE64 的实现
2011-03-23 10:25 4838COMMON CODEC BASE64 标准的base64加 ... -
Base64编码在传输过程中的可能问题
2010-01-19 16:49 7149Base64 c#加密函数 public static ... -
Tomcat 中ssl的配置
2009-12-28 14:18 6101. keytool -genkey -keyalg RSA ... -
Base64编码
2009-09-11 17:20 1505Base64 1.什么是Base64? 按照RFC2045 ... -
Java RSA 加解密算法实现
2009-06-09 10:38 3215需要下载bcprov-jdk15-135.jar包 imp ...
相关推荐
RSA加密算法实现以及C#与java互通加解密,解决RSA算法在java与C#相互通用
分别用C#、Java实现的RSA和DES加解密算法,包含demo源码,经实际项目验证。
* RSA加密解密:私钥解密,公钥加密。 * RSA数字签名-俗称加签验签:私钥加签,公钥验签。 * RSA加密解密:私钥解密,公钥加密。 * RSA数字签名-俗称加签验签:私钥加签,公钥验签。 * RSA加密解密:私钥...
利用System.Numerics.BigInteger实现,私钥加密,公钥解密。兼容PKCS1填充方式。有效文件只有MyRSA.cs一个,其它文件是因为带了一个演示窗口。
C#与java平台RSA加密解密签名验签互通案例,解决RSA在C#与java加密算法不同导致验签不过情况
本文件内容翔实,报告以及源程序都有,源程序是多文件结构,代码精炼
C# 实现 DES 3DES RSA 加密解密算法 采用 vs2005实现 winform应用程序
C#实现字符串RSA加密与解密 算法工程下载 ,根据网上的例子修改而成,经过测试工作正常,winform。
可以直接运行成功的RSA加密解密示例 JAVA端采用公钥加密,服务端C#采用私钥解密。
C# RSA加密、解密、加签、验签、支持JAVA格式公钥私钥、PEM格式公钥私钥、.NET格式公钥私钥 对应文章: http://blog.csdn.net/gzy11/article/details/54573973
C#实现的RSA算法,全部为工程代码,开发环境visual studio2012。如果无法下载也可以直接看代码, https://blog.csdn.net/yysyangyangyangshan/article/details/80411134
RSA加解密: 1024位的证书,加密时最大支持117个字节,解密时为128; 2048位的证书,加密时最大支持245个字节,解密时为256。 加密时支持的最大字节数:证书位数/8 -11(比如:2048位的证书,支持的最大加密字节数:...
本人利用网上找的一个C#版的大整数类BigInteger(本人认为这是偶发现的效率最高的一个C#版大整数类)来实现私钥加密公钥加密(事实上也完全支持公租加密私钥解密),但没有使用类BigInteger的大素数生成函数,而是...
基于私钥加密公钥解密的RSA算法C# 实现 RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。 RSA是被研究得最广泛的公钥算法,从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受,普遍...
相同的算法,不同的语言实现RSA加密解密。 RSA加密解密 Flex 和 C#互通代码。因为。net 的加密类与flex crypto不通用,不能实现,c#加密,flex解密,且只能公匙加密、私匙解密。因此整理出两边通用的加密类。实现...
主要给大家介绍了关于同时兼容JS和C#的RSA加密解密算法,通过该算法可以对web提交的数据进行加密传输,文中通过图文及示例代码介绍的非常详细,需要的朋友们可以参考借鉴,下面来一起看看吧。
C#编写的文件加、解密,使用RSA算法实现。选择本地文件后,对文件进行加密,再对加密后的文件进行解密。代码在VS 2017下直接运行。(源代码,C#实现)
C#代码RSA(1024和2048)生成公钥 生成私钥,加密和解密的算法
MD5 单向加密 SHA1 单向加密 DES 双向,可解密 加密字符串 ...RSA加密解密及RSA签名和验证 RSA 的密钥产生 产生私钥 和公钥 RSA 方式加密 RSA的解密函数 获取Hash描述表 RSA签名 RSA 签名验证