登录加密测验
来源:互联网 发布:淘宝卖家使用尺码 编辑:程序博客网 时间:2024/05/21 19:37
刚学ADO.NET,见数据库中的登录密码类的字段是明文,只觉不妥,便随心加了这个。好耍好耍,大家有何建议,望告知小白。。。
private static string salt;
private void btn_Encrypte_Click(object sender, EventArgs e)
{
//only MD5
if (radioBtn_MD5.Checked == true)
{
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
byte[] ByteString = System.Text.Encoding.ASCII.GetBytes(txt_Input.Text);
ByteString = md5.ComputeHash(ByteString);
string FinalString = null;
foreach (byte bt in ByteString)
{
FinalString += bt.ToString("x2");
}
txt_EncrypteOutput.Text = FinalString.ToString();
}
if (radioBtn_SHA512Hash.Checked == true)
{
byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(txt_Input.Text);
SHA512Managed sha512 = new SHA512Managed();
byte[] outputBytes = sha512.ComputeHash(inputBytes);
txt_EncrypteOutput.Text = Convert.ToBase64String(outputBytes);
}
//plus salt
if(radioBtn_SHA512HashPlusSalt.Checked==true)
{
salt=GetSalt(64,128);
CaculateSHA512Hash(this.txt_Input.Text,salt);
}
}
private void CaculateSHA512Hash(string input,string salt)
{
input = txt_Input.Text;
byte[] saltBytes = Convert.FromBase64String(salt);
byte[] inputBytes = Encoding.UTF8.GetBytes(input);
byte[] inputWithSaltBytes = new byte[saltBytes.Length + inputBytes.Length];
Array.Copy(inputBytes, 0, inputWithSaltBytes, 0, inputBytes.Length);
Array.Copy(saltBytes, 0, inputWithSaltBytes, inputBytes.Length,saltBytes.Length);
SHA512Managed sha512 = new SHA512Managed();
byte[] outputBytes = sha512.ComputeHash(inputWithSaltBytes);
txt_EncrypteOutput.Text = Convert.ToBase64String(outputBytes);
}
private static string GetSalt(int minSaltSize,int maxSaltSize)
{
Random random = new Random();
int saltSize = random.Next(minSaltSize, maxSaltSize);
byte[] saltBytes = new byte[saltSize];
RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
rng.GetNonZeroBytes(saltBytes);
return Convert.ToBase64String(saltBytes);
}
0 0
- 登录加密测验
- 加密与登录界面
- RSA加密登录请求
- SSH加密登录协议
- shiro 加密登录
- web登录数据加密
- java实现字符串加密,登录密码加密
- [诛仙]登录封包加密分析
- c# MD5 加密登录密码
- 登录 之 密码加密处理
- iOS 用户登录 sh1加密
- 博客园加密登录--jsencrypt
- web登录用户名密码加密
- 登录功能(MD5加密)
- 网站登录 - 密码如何加密
- SSH 远程登录加密原理
- iOS 用户登录 sh1加密
- 用户登录之SHA1加密
- Android 网络管理
- hdu 1298 T9 字典树+DFS
- jQuery与javascript方法比较
- python之一些细节
- 编写高质量IOS代码(二)
- 登录加密测验
- zendstudio新建phplocal工程,配置apache服务器
- leetcode 206 Reverse Linked List
- spring获取request,session
- DLL_THREAD_ATTACH防止远程线程注入
- 时间类的简单操作
- solr4.10新建core
- leetcode Happy Number
- NSDateFormatter格式详解