近日要对客户的数据库进行测试,其中一项就是使用不同用户权限去测试,由于数据库来自客户,密码是加密过的,其实就是的使用SHA1简单的Hash一下,方法就是直接用.NET框架提供的,如下:
FormsAuthentication.HashPasswordForStoringInConfigFile(strPassword,"SHA1");
现在要把用户的密码替换成我们自己的填写的密码进行测试,想当然的是用.NET提供的方法去做一个小工具了,可在WinForm中可没有FormsAuthentication.HashPasswordForStoringInConfigFile,但有System.Security.Cryptography可以使用,于是就有如下代码:






















但是,发觉Hash出来的字符串很多时候都不够40位,和在WEB中得出的字符串不一致,后来把每个散列的字符串逐一列出来才发觉,有些转换成16进制是“0X”,就直接是“X”,那个“0”就消失,呵呵,真是麻烦,只好自己手动填充一下了 :)
// PadLeft(2,'0 ) 填补转换后少取一位 "0"
strHashCode += Convert.ToString(byteTmp, 16).PadLeft(2, '0') ;