求一段代码 如何用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进制。
...全文
366 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用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
  • 打赏
  • 举报
回复
你这问题问的··貌似就是 给你一碗饭,坐等大牛来煮饭···
notepad--v3.4 windows Notepad--v3.4.0-plugin-Installer.exe 是win10下面的插件版安装包,会关联右键菜单等。 Notepad--v3.4.0-win10-portable.zip 是绿色免安装版本,解压即用,不会关联右键菜单注册表。 Ndd-quick-v3.3.0-win10-single-portable.zip 是单文件绿色免安装版,只包含皮肤和vc依赖库,不含插件、不含文件对比,主推轻量级、快速反应。适合只需要纯粹、轻快级,文本编辑器的用户。不定期发布。 MacOS 版本 Notepad--v3.4.0-mac_x64_12.3.dmg 是macos 12.x 及以后的版本。 Notepad--v3.4.0-mac_arm64_12.3.dmg 是macos 12.x 及以后 arm64 m1/m2芯片 的版本。第一次安装时,需要在设置偏好里面,放开苹果的安装限制,才能正常识别,请自行放开设置一下。 如果还是有问题,参考帖子:#I8JTJN:macOS Sonoma 14.1.1安装提示已损坏:macOS Sonoma 14.1.1安装提示已损坏 uos com.hmja.notepad_3.4.0.0_amd64.deb 是x64 cpu架构的uos系统对应的ndd版本。 其余系统版本后续会发布。 3.4 修改如下: 1 支持文件标签拖入拖出到新窗口的效果。 2 windows下修改快捷键放开。 3 按行号切分大文件。 4 大文件打开时,在文件夹查找所在目录,macos下可能会崩溃问题。 5 目录右键增加删除文件、文件夹功能。 6 补充深色主题下rust语法高亮; lisp 语法失效问题。 7 linux下信号打开文件,不拿锁,打开文件在消息队列中去做。

111,092

社区成员

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

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

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