近日要對客戶的數據庫進行測試,其中一項就是使用不同用戶權限去測試,由於數據庫來自客戶,密碼是加密過的,其實就是的使用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'') ;