寻找Hash后丢失的字符
来源:互联网 发布:网络风景图片大全图片 编辑:程序博客网 时间:2024/05/21 06:44
近日要对客户的数据库进行测试,其中一项就是使用不同用户权限去测试,由于数据库来自客户,密码是加密过的,其实就是的使用SHA1简单的Hash一下,方法就是直接用.NET框架提供的,如下:
FormsAuthentication.HashPasswordForStoringInConfigFile(strPassword,"SHA1");
现在要把用户的密码替换成我们自己的填写的密码进行测试,想当然的是用.NET提供的方法去做一个小工具了,可在WinForm中可没有FormsAuthentication.HashPasswordForStoringInConfigFile,但有System.Security.Cryptography可以使用,于是就有如下代码:
private void btnHash_Click(object sender, EventArgs e)
...{
string strPassword = this.txtPassword.Text.ToString();
string strHashCode = "";
SHA1 sha1 = new SHA1CryptoServiceProvider();
UTF8Encoding utf = new UTF8Encoding();
byte[] byteA1 = utf.GetBytes(strPassword);
byte[] byteA2 = sha1.ComputeHash(byteA1);
sha1.Clear();
foreach (byte byteTmp in byteA2)
...{
strHashCode += Convert.ToString(byteTmp, 16);
}
strHashCode = strHashCode.ToUpper();
if (strPassword != "")
...{
this.txtHashCode.Text = strHashCode;
}
}
...{
string strPassword = this.txtPassword.Text.ToString();
string strHashCode = "";
SHA1 sha1 = new SHA1CryptoServiceProvider();
UTF8Encoding utf = new UTF8Encoding();
byte[] byteA1 = utf.GetBytes(strPassword);
byte[] byteA2 = sha1.ComputeHash(byteA1);
sha1.Clear();
foreach (byte byteTmp in byteA2)
...{
strHashCode += Convert.ToString(byteTmp, 16);
}
strHashCode = strHashCode.ToUpper();
if (strPassword != "")
...{
this.txtHashCode.Text = strHashCode;
}
}
但是,发觉Hash出来的字符串很多时候都不够40位,和在WEB中得出的字符串不一致,后来把每个散列的字符串逐一列出来才发觉,有些转换成16进制是“0X”,就直接是“X”,那个“0”就消失,呵呵,真是麻烦,只好自己手动填充一下了 :)
// PadLeft(2,'0 ) 填补转换后少取一位 "0"
strHashCode += Convert.ToString(byteTmp, 16).PadLeft(2, '0') ;
- 寻找Hash后丢失的字符
- 寻找丢失的我
- 寻找丢失的数
- PhoneFinder--寻找丢失的手机
- 寻找丢失的王子剑
- 【算法】寻找丢失的数字
- 寻找丢失的三个数
- 改进的字符hash
- 面试题之寻找丢失的数字
- 面试题之寻找丢失的数字
- 面试题之寻找丢失的数字
- CI5.7-寻找丢失的数
- 寻找第一个丢失的正数
- 寻找连续数中丢失的数
- 编程之美(寻找丢失的数)
- lintcode(570)寻找丢失的数 II
- 寻找丢失的第一个正整数
- Java实现-寻找丢失的数1
- ar和nm命令的使用
- 避免在Java中使用Checked Exception
- 位域
- 绘图软件
- Windows2000域控制器默认端口的列表
- 寻找Hash后丢失的字符
- 持续集成:什么应该自动化?
- 深入浅出典型协议分析:SMB/CIFS协议
- 生命是一种长期而持续的累积过程
- WAP常见问题问答大全
- 第一次打乒乓
- 挑战系统
- PowerShell 2.0 CTP版的新运算符介绍
- ASP.NET 2.0 中的 Windows 身份验证详解