- 浏览: 496905 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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 12732.3 CAS 安全性 CAS 的安全性是一个非 ... -
对称加密算法概述
2011-04-15 14:52 13351. 对称加密 对大多 ... -
Commons 与 Bouncy 的 URLBase64 实现
2011-04-02 21:08 13281. Bouncy Castle import org.bou ... -
commons codec 提供的消息摘要算法, MD与SHA算法
2011-04-02 20:57 21201. import org.apache.commons.co ... -
消息摘要算法
2011-03-24 10:50 1823消息摘要算法 1. 概念 消息摘要算法的主要特征是加密过程 ... -
SUN 提供的消息摘要算法 MD与SHA
2011-03-24 10:28 1509SUN 提供的消息摘要算法 接收任意大小的数据,并输出固定长 ... -
COMMON CODEC 十六进制与byte之间的转换
2011-03-23 10:48 2441COMMON CODEC HEX 字符串十六进制之间转换 ... -
COMMON CODEC BASE64 的实现
2011-03-23 10:25 4981COMMON CODEC BASE64 标准的base64加 ... -
Base64编码在传输过程中的可能问题
2010-01-19 16:49 7180Base64 c#加密函数 public static ... -
Tomcat 中ssl的配置
2009-12-28 14:18 6501. keytool -genkey -keyalg RSA ... -
Base64编码
2009-09-11 17:20 1535Base64 1.什么是Base64? 按照RFC2045 ... -
Java RSA 加解密算法实现
2009-06-09 10:38 3253需要下载bcprov-jdk15-135.jar包 imp ...
相关推荐
本篇文章将深入探讨C#如何实现RSA加密解密,并结合Winform界面进行演示。 **1. RSA算法基础** RSA算法基于数论原理,包括大数因子分解的困难性。它包含两个密钥:公钥和私钥。公钥可以公开,用于加密;私钥必须...
本篇文章将深入探讨C#中RSA分段加解密的实现方法。 首先,我们需要了解RSA加密的基本限制。在.NET框架中,RSA加密算法由于安全性的考虑,会在加密前添加一些随机数,这意味着单次加密的最大数据量受到限制。例如,...
RSA加密解密是一种广泛应用于网络安全中的非对称加密算法,由Ron Rivest、Adi Shamir和Leonard Adleman三位科学家在1977年提出,因此得名RSA。这种算法基于大数因子分解的困难性,为数据提供了一种安全的加密方式,...
C#是一种广泛用于开发桌面和Web应用程序的编程语言,它提供了强大的库来实现各种加密算法,其中包括著名的非对称加密算法——RSA。下面我们将深入探讨如何用C#实现RSA的加密与解密。 首先,RSA(Rivest-Shamir-...
总的来说,这个项目展示了如何在C#中使用`System.Numerics.BigInteger`实现RSA加密算法,同时提供了私钥加密和公钥解密的功能,确保了数据的安全性。为了实际应用,你需要理解并掌握RSA算法的原理,以及如何在.NET...
### RSA加密算法实现以及C#与Java互通加解密 #### 一、RSA算法简介 RSA算法是一种非对称加密算法,由Ron Rivest、Adi Shamir 和 Leonard Adleman 在1977年提出,并以其三人的名字首字母命名。RSA算法的安全性基于...
C# RSA加密解密工具是一种基于公钥/私钥对的加密算法实现,主要用于保障数据的安全传输和存储。RSA(Rivest-Shamir-Adleman)算法是公开密钥加密技术的鼻祖,由Ron Rivest、Adi Shamir和Leonard Adleman在1977年提出...
总结来说,"C# Android互通RSA加密解密"涉及了跨平台数据安全传输的核心技术,包括RSA加密算法的原理与应用,以及在C#和Android环境下的具体实现。通过合理的密钥管理,可靠的传输协议,以及详尽的测试,可以实现两...
本话题主要关注如何在C#和Java之间通过RSA和DES加密算法实现数据的安全互通。RSA是一种非对称加密算法,适用于小量数据加密,如密钥交换;而DES是对称加密算法,适合大量数据的快速加密,但安全性相对较低。 首先,...
至此,我们已经完成了汉字的RSA加解密过程。需要注意的是,RSA更适合加密小量数据,如密钥或者会话标识,而非大量文本。对于大量数据,通常采用RSA来加密一个随机生成的对称密钥,然后用这个对称密钥去加密实际的...
在C# .NET中,我们可以使用System.Security.Cryptography命名空间下的RSACryptoServiceProvider类来实现RSA加解密。以下是一些关键步骤: 1. **生成密钥对**: - 使用RSACryptoServiceProvider的实例创建密钥对,...
标题提到的"C#实现RSA加密算法"着重讲述了如何在C#中利用大整数类BigInteger和RSACryptoServiceProvider类来完成私钥加密公钥解密的过程。以下是对这个话题的详细解释: 1. **RSA算法基础**: RSA算法由Rivest、...
在C#中,可以使用`System.Security.Cryptography.RSACryptoServiceProvider`类来实现RSA加密和解密。首先,你需要生成一对RSA密钥,然后将公钥暴露给客户端(这里指的是JavaScript),私钥保留在服务器端。C#代码...
"C# RSA加密与JAVA解密,实现相互通信"的主题聚焦于如何利用RSA公钥/私钥加密算法在C#和Java两个不同的编程环境中实现安全的数据交换。RSA是一种非对称加密算法,它使用一对密钥——公钥和私钥,公钥用于加密,私钥...
C#实现的RSA算法,全部为工程代码,开发环境visual studio2012。如果无法下载也可以直接看代码, https://blog.csdn.net/yysyangyangyangshan/article/details/80411134
加密算法E和解密算法D也都是公开的。虽然秘密密钥SK是由公开密钥PK决定的,但却不能根据PK计算出SK。 在C#中实现RSA加密算法需要使用到RSACryptoServiceProvider类,该类提供了RSA加密算法的实现。下面是一个简单的...
* RSA加密解密:私钥解密,公钥加密。 * RSA数字签名-俗称加签验签:私钥加签,公钥验签。 * RSA加密解密:私钥解密,公钥加密。 * RSA数字签名-俗称加签验签:私钥加签,公钥验签。 * RSA加密解密:私钥...
本文将深入探讨如何使用C#语言实现RSA加解密,并关注提供的源代码文件`RSA.cs`。 1. **RSA原理**: RSA算法的核心在于两个大素数的乘积,这两个素数是保密的,称为私钥。公钥是这两个素数的乘积和一个欧拉函数φ(n...
RSA文件加解密是信息安全领域中的一个重要话题,特别是在软件开发中,为了保护数据的安全,开发者经常需要对敏感信息进行加密处理。本示例是用C#语言实现的,利用RSA算法进行文件的加密和解密操作。RSA是一种非对称...
本项目“C#实现字符串RSA加密与解密 算法工程下载”提供了一个C#语言编写的示例,帮助开发者理解并应用RSA加密算法。 RSA的核心原理基于大数因子分解的困难性。它使用一对公钥和私钥,公钥可以公开,用于加密数据;...