首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

求一段代码 怎么用C# 来实现?等大牛100分送上

2013-10-21 
求一段代码 如何用C# 来实现?等大牛100分送上1 rsaPublickey int(pubkey, 16)2 key rsa.PublicKey(rsa

求一段代码 如何用C# 来实现?等大牛100分送上
1 rsaPublickey = int(pubkey, 16)
2 key = rsa.PublicKey(rsaPublickey, 65537) #创建公钥
3 message = str(servertime) + '\t' + str(nonce) + '\n' + str(password) #拼接明文js加密文件中得到
4 passwd = rsa.encrypt(message, key) #加密
5 passwd = binascii.b2a_hex(passwd) #将加密信息转换为16进制。 求一段代码 怎么用C# 来实现?等大牛100分送上
[解决办法]
这是C#一个可逆的加密解密算法,我也在用

using System;   
using System.IO;   
using System.Security.Cryptography;   
  
using System.Text;   
  
namespace DataCrypto   
{   
 /// <summary>   
 /// 对称加密算法类   
 /// </summary>   
 public class SymmetricMethod   
 {   
    
 private SymmetricAlgorithm mobjCryptoService;   
 private string Key;   
 /// <summary>   
 /// 对称加密类的构造函数   
 /// </summary>   
 public SymmetricMethod()   
 {   
 mobjCryptoService = new RijndaelManaged();   
 Key = "Guz(%&hj7x89H$yuBI0456FtmaT5&fvHUFCy76*h%(HilJ$lhj!y6&(*jkP87jH7";   
 }   
 /// <summary>   
 /// 获得密钥   
 /// </summary>   
 /// <returns>密钥</returns>   
 private byte[] GetLegalKey()   
 {   
 string sTemp = Key;   
 mobjCryptoService.GenerateKey();   
 byte[] bytTemp = mobjCryptoService.Key;   
 int KeyLength = bytTemp.Length;   
 if (sTemp.Length > KeyLength)   
 sTemp = sTemp.Substring(0, KeyLength);   
 else if (sTemp.Length < KeyLength)   
 sTemp = sTemp.PadRight(KeyLength, ' ');   
 return ASCIIEncoding.ASCII.GetBytes(sTemp);   
 }   
 /// <summary>   
 /// 获得初始向量IV   
 /// </summary>   
 /// <returns>初试向量IV</returns>   
 private byte[] GetLegalIV()   
 {   
 string sTemp = "E4ghj*Ghg7!rNIfb&95GUY86GfghUb#er57HBh(u%g6HJ($jhWk7&!hg4ui%$hjk";   
 mobjCryptoService.GenerateIV();   
 byte[] bytTemp = mobjCryptoService.IV;   
 int IVLength = bytTemp.Length;   
 if (sTemp.Length > IVLength)   
 sTemp = sTemp.Substring(0, IVLength);   
 else if (sTemp.Length < IVLength)   
 sTemp = sTemp.PadRight(IVLength, ' ');   
 return ASCIIEncoding.ASCII.GetBytes(sTemp);   
 }   
 /// <summary>   
 /// 加密方法   
 /// </summary>   
 /// <param name="Source">待加密的串</param>   
 /// <returns>经过加密的串</returns>   
 public string Encrypto(string Source)   
 {   
 byte[] bytIn = UTF8Encoding.UTF8.GetBytes(Source);   
 MemoryStream ms = new MemoryStream();   
 mobjCryptoService.Key = GetLegalKey();   
 mobjCryptoService.IV = GetLegalIV();   
 ICryptoTransform encrypto = mobjCryptoService.CreateEncryptor();   
 CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Write);   
 cs.Write(bytIn, 0, bytIn.Length);   
 cs.FlushFinalBlock();   


 ms.Close();   
 byte[] bytOut = ms.ToArray();   
 return Convert.ToBase64String(bytOut);   
 }   
 /// <summary>   
 /// 解密方法   
 /// </summary>   
 /// <param name="Source">待解密的串</param>   
 /// <returns>经过解密的串</returns>   
 public string Decrypto(string Source)   
 {   
 byte[] bytIn = Convert.FromBase64String(Source);   
 MemoryStream ms = new MemoryStream(bytIn, 0, bytIn.Length);   
 mobjCryptoService.Key = GetLegalKey();   
 mobjCryptoService.IV = GetLegalIV();   
 ICryptoTransform encrypto = mobjCryptoService.CreateDecryptor();   
 CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Read);   
 StreamReader sr = new StreamReader(cs);   
 return sr.ReadToEnd();   
 }   
 } 


[解决办法]
看到楼上写了这么多,驻足一观
[解决办法]
顶一顶就给分吗???
[解决办法]
接分 求一段代码 怎么用C# 来实现?等大牛100分送上
[解决办法]
厉害,求解决方案
[解决办法]
引用:
这是C#一个可逆的加密解密算法,我也在用

using System;   
using System.IO;   
using System.Security.Cryptography;   
  
using System.Text;   
  
namespace DataCrypto   
{   
 /// <summary>   
 /// 对称加密算法类   
 /// </summary>   
 public class SymmetricMethod   
 {   
    
 private SymmetricAlgorithm mobjCryptoService;   
 private string Key;   
 /// <summary>   
 /// 对称加密类的构造函数   
 /// </summary>   
 public SymmetricMethod()   
 {   
 mobjCryptoService = new RijndaelManaged();   
 Key = "Guz(%&hj7x89H$yuBI0456FtmaT5&fvHUFCy76*h%(HilJ$lhj!y6&(*jkP87jH7";   
 }   
 /// <summary>   
 /// 获得密钥   
 /// </summary>   
 /// <returns>密钥</returns>   
 private byte[] GetLegalKey()   
 {   
 string sTemp = Key;   
 mobjCryptoService.GenerateKey();   
 byte[] bytTemp = mobjCryptoService.Key;   
 int KeyLength = bytTemp.Length;   
 if (sTemp.Length > KeyLength)   
 sTemp = sTemp.Substring(0, KeyLength);   
 else if (sTemp.Length < KeyLength)   
 sTemp = sTemp.PadRight(KeyLength, ' ');   
 return ASCIIEncoding.ASCII.GetBytes(sTemp);   
 }   
 /// <summary>   
 /// 获得初始向量IV   
 /// </summary>   
 /// <returns>初试向量IV</returns>   
 private byte[] GetLegalIV()   
 {   
 string sTemp = "E4ghj*Ghg7!rNIfb&95GUY86GfghUb#er57HBh(u%g6HJ($jhWk7&!hg4ui%$hjk";   
 mobjCryptoService.GenerateIV();   
 byte[] bytTemp = mobjCryptoService.IV;   
 int IVLength = bytTemp.Length;   
 if (sTemp.Length > IVLength)   
 sTemp = sTemp.Substring(0, IVLength);   
 else if (sTemp.Length < IVLength)   
 sTemp = sTemp.PadRight(IVLength, ' ');   
 return ASCIIEncoding.ASCII.GetBytes(sTemp);   
 }   
 /// <summary>   
 /// 加密方法   
 /// </summary>   
 /// <param name="Source">待加密的串</param>   
 /// <returns>经过加密的串</returns>   
 public string Encrypto(string Source)   
 {   
 byte[] bytIn = UTF8Encoding.UTF8.GetBytes(Source);   
 MemoryStream ms = new MemoryStream();   
 mobjCryptoService.Key = GetLegalKey();   


 mobjCryptoService.IV = GetLegalIV();   
 ICryptoTransform encrypto = mobjCryptoService.CreateEncryptor();   
 CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Write);   
 cs.Write(bytIn, 0, bytIn.Length);   
 cs.FlushFinalBlock();   
 ms.Close();   
 byte[] bytOut = ms.ToArray();   
 return Convert.ToBase64String(bytOut);   
 }   
 /// <summary>   
 /// 解密方法   
 /// </summary>   
 /// <param name="Source">待解密的串</param>   
 /// <returns>经过解密的串</returns>   
 public string Decrypto(string Source)   
 {   
 byte[] bytIn = Convert.FromBase64String(Source);   
 MemoryStream ms = new MemoryStream(bytIn, 0, bytIn.Length);   
 mobjCryptoService.Key = GetLegalKey();   
 mobjCryptoService.IV = GetLegalIV();   
 ICryptoTransform encrypto = mobjCryptoService.CreateDecryptor();   
 CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Read);   
 StreamReader sr = new StreamReader(cs);   
 return sr.ReadToEnd();   
 }   
 } 



虽然解决了,但是如果7L的回答对你有帮助,请把分给他。
[解决办法]
接分 求一段代码 怎么用C# 来实现?等大牛100分送上
[解决办法]
我也正在用到加密解密,关注

热点排行