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

黄瓜黄瓜 2013-10-19 02:20:56
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进制。
...全文
359 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
q125357 2013-11-02
  • 打赏
  • 举报
回复
怎么领分的啊?
yyl8781697 2013-10-20
  • 打赏
  • 举报
回复
LZ如果想用c#版的RSA加解密,可以看看这个 整合一个基于c#的RSA私钥加密公钥解密的Helper类,含源码
OSMeteor 2013-10-20
  • 打赏
  • 举报
回复
这就是加密算法啊,百度一大堆啊
秋的红果实 2013-10-20
  • 打赏
  • 举报
回复
我也正在用到加密解密,关注
csnd唐长老 2013-10-20
  • 打赏
  • 举报
回复
接分
threenewbee 2013-10-19
  • 打赏
  • 举报
回复
引用 7 楼 hdhai9451 的回复:
这是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的回答对你有帮助,请把分给他。
QuickPai 2013-10-19
  • 打赏
  • 举报
回复
接分
qiang1qiang 2013-10-19
  • 打赏
  • 举报
回复
顶一顶就给分吗???
happytonice 2013-10-19
  • 打赏
  • 举报
回复
看到楼上写了这么多,驻足一观
Andy__Huang 2013-10-19
  • 打赏
  • 举报
回复
这是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();   
 }   
 } 
黄瓜黄瓜 2013-10-19
  • 打赏
  • 举报
回复
我擦100分呢 多来两个人领啊
Regan-lin 2013-10-19
  • 打赏
  • 举报
回复
引用 3 楼 Net_Java_dram 的回复:
我已经解决了
by_封爱 版主 2013-10-19
  • 打赏
  • 举报
回复
解决了还不结贴?
黄瓜黄瓜 2013-10-19
  • 打赏
  • 举报
回复
我已经解决了
tcmakebest 2013-10-19
  • 打赏
  • 举报
回复
rsa 加密和解密需要三套代码,一套是生成密钥,一套是加密,一套是解密,楼主是要哪块啊?
敌敌畏耶 2013-10-19
  • 打赏
  • 举报
回复
你这问题问的··貌似就是 给你一碗饭,坐等大牛来煮饭···

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧