伊莉討論區
標題:
C# MD5加密 遇到瓶頸 懇請幫助
[打印本頁]
作者:
jhsdenny
時間:
2011-3-7 11:49 PM
標題:
C# MD5加密 遇到瓶頸 懇請幫助
以下是程式碼 卻跑不出來
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Security.Cryptography; //要先引用加解密類別
namespace ConsoleApplication1
{
class Program
{
private byte[] encrypt(string string_secretContent, string string_pwd)
{
byte[] byte_secretContent = Encoding.UTF8.GetBytes(string_secretContent);
byte[] byte_pwd = Encoding.UTF8.GetBytes(string_pwd);
MD5CryptoServiceProvider provider_MD5 = new MD5CryptoServiceProvider();
byte[] byte_pwdMD5 = provider_MD5.ComputeHash(byte_pwd);
RijndaelManaged provider_AES = new RijndaelManaged();
ICryptoTransform encrypt_AES = provider_AES.CreateEncryptor(byte_pwdMD5, byte_pwdMD5);
byte[] output = encrypt_AES.TransformFinalBlock(byte_secretContent, 0, byte_secretContent.Length);
return output;
}
private string decrypt(byte[] byte_ciphertext, string string_pwd)
{
byte[] byte_pwd = Encoding.UTF8.GetBytes(string_pwd);
MD5CryptoServiceProvider provider_MD5 = new MD5CryptoServiceProvider();
byte[] byte_pwdMD5 = provider_MD5.ComputeHash(byte_pwd);
RijndaelManaged provider_AES = new RijndaelManaged();
ICryptoTransform decrypt_AES = provider_AES.CreateDecryptor(byte_pwdMD5, byte_pwdMD5);
byte[] byte_secretContent = decrypt_AES.TransformFinalBlock(byte_ciphertext, 0, byte_ciphertext.Length);
string string_secretContent = Encoding.UTF8.GetString(byte_secretContent);
return string_secretContent;
}
static void Main(string[] args)
{
string string_secretContent = "test.txt";
string string_pwd = "0713";
//加密
byte[] byte_ciphertext = encrypt(string_secretContent, string_pwd);
//解密
string result = decrypt(byte_ciphertext, string_pwd);
}
}
}
複製代碼
先謝過 各位先進的幫助了
作者:
arthurliuliu
時間:
2011-3-8 03:09 PM
回復
1#
jhsdenny
哪裡跑不出來? 你這樣問應該不會有人想回答...
範例如下: (參考 msdn sample)
MD5 md5Hasher = MD5.Create();
byte[] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes(textBox1.Text));
StringBuilder sBuilder = new StringBuilder();
for (int i = 0; i < data.Length; i++)
{
sBuilder.Append(data[i].ToString("x"));
}
textBox2.Text = sBuilder.ToString();
複製代碼
作者:
jhsdenny
時間:
2011-3-8 08:32 PM
回復
2#
arthurliuliu
很抱歉 我問的方式不對
也謝謝 arthurliuliu 大大 給我的頭緒
剛剛 完成了 沒想到 幾行的程式 就可以達到我要的簡單效果
[attach]52757012[/attach]
目前小弟繼續研究把 加密後內容 存到 檔案裡(小弟還未在 視窗程式內 用過開閉檔)
跟 看看有沒有可逆的加密方式
謝謝
作者:
arthurliuliu
時間:
2011-3-8 11:01 PM
回復
3#
jhsdenny
看你的畫面, 你加密之後,
應該還有再用 Convert.ToBase64String() 處理過,
不過都差不多啦~
md5 目前來說還是不可逆的,
在網路上是有看過 md5 破解的資料庫,
不過他應該是先有資料, 再產生 md5 字串, 存成資料庫,
直接逆向的話, 目前應該是還沒有~
作者:
jhsdenny
時間:
2011-3-9 05:03 PM
回復
4#
arthurliuliu
原來 還有資料庫的用法 真是增廣見聞
此外 小弟目前遇到 亂數的瓶頸
想把 textBox 的 內容用亂數排序
目前發現沒有變化 正在努力研究中
string[] temp = txt_Source.Lines;
double[] randomIndex = new double[temp.Length];
Random r = new Random(Guid.NewGuid().GetHashCode());
for (int i = 0; i < temp.Length; i++)
{
randomIndex[i] = r.NextDouble();
}
Array.Sort(randomIndex, temp);
txt_Result.Lines = temp;
複製代碼
歡迎光臨 伊莉討論區 (http://www67.eyny.com/)
Powered by Discuz!