求密码加密方法 要求是通过key加密,加密结果要位数定长 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 试了一下这段代码,结果不是定长的public class MD5 { private MD5() { // // TODO: 在此处添加构造函数逻辑 // } public static byte[] getbyte(string str) { return Encoding.Default.GetBytes(str); } ///md5加密解密 /// <param name="strkey"> 密钥不限定位数</param> public static string md5Encrypt(String plainText, string strkey) { if (plainText.Trim() == "") return ""; string encrypted = null; byte[] key = getbyte(strkey); try { byte[] inputBytes = ASCIIEncoding.ASCII.GetBytes(plainText); byte[] pwdhash = null; MD5CryptoServiceProvider hashmd5; //generate an MD5 hash from the password. //a hash is a one way encryption meaning once you generate //the hash, you cant derive the password back from it. hashmd5 = new MD5CryptoServiceProvider(); pwdhash = hashmd5.ComputeHash(key); hashmd5 = null; // Create a new TripleDES service provider TripleDESCryptoServiceProvider tdesProvider = new TripleDESCryptoServiceProvider(); tdesProvider.Key = pwdhash; tdesProvider.Mode = CipherMode.ECB; encrypted = Convert.ToBase64String( tdesProvider.CreateEncryptor().TransformFinalBlock(inputBytes, 0, inputBytes.Length)); } catch (Exception e) { string str = e.Message; throw; } return encrypted; } } md5是定长的,只是你后来又使用md5 key做了其他加密的密匙,返回的结果已经不是md5了 图片放大变形的问题,欢迎一起讨论 开发过Empp协议的进来看看吧! 关于使用pop3协议,接受邮件,频率多少会被封? 有关Winform c# treeview单击控件怎么消掉原来的内容 不用CreateGraphics怎样从图片中剪裁出某一区域 怎么得到鼠标点击了WinForm的DataGrid的什么位置?多谢 有一个数据导入模块,其中有进度条,用到了多线程,请问这样的环境中,有多少的线程,线程间是怎么联系的?? 请问各位高手,有没有测试系统接口函数(或API函数)运行效率的测试程序? C# socket的问题 如何取DATASET中某表的某列的最大值 简单问题 急!
{
private MD5()
{
//
// TODO: 在此处添加构造函数逻辑
//
} public static byte[] getbyte(string str)
{
return Encoding.Default.GetBytes(str);
} ///md5加密解密
/// <param name="strkey"> 密钥不限定位数</param>
public static string md5Encrypt(String plainText, string strkey)
{
if (plainText.Trim() == "") return "";
string encrypted = null;
byte[] key = getbyte(strkey);
try
{
byte[] inputBytes = ASCIIEncoding.ASCII.GetBytes(plainText);
byte[] pwdhash = null;
MD5CryptoServiceProvider hashmd5;
//generate an MD5 hash from the password.
//a hash is a one way encryption meaning once you generate
//the hash, you cant derive the password back from it.
hashmd5 = new MD5CryptoServiceProvider();
pwdhash = hashmd5.ComputeHash(key);
hashmd5 = null;
// Create a new TripleDES service provider
TripleDESCryptoServiceProvider tdesProvider = new TripleDESCryptoServiceProvider();
tdesProvider.Key = pwdhash;
tdesProvider.Mode = CipherMode.ECB; encrypted = Convert.ToBase64String(
tdesProvider.CreateEncryptor().TransformFinalBlock(inputBytes, 0, inputBytes.Length));
}
catch (Exception e)
{
string str = e.Message;
throw;
}
return encrypted;
} }