md5加密後字元串
md5是32位的,所以你需要先生成md5,再進行字元串截取,截取24個長度就是24位了。
生成隨機的為了不重復,可以使用當前時間戳,在加上隨機數就行
$date_string = date('Y') . date('m') . date('d') . date('H') . date('i') . date('s') . mt_rand(100000, 999999);
$md5_string = md5($date_string);
$string = substr($md5_string, 0, 24);
echo $string;
⑵ 不同語言的md5加密同一字元串,結果是不一樣的嗎
首先不同的語言的md5加密方式肯定是一樣的
使用C#的MD5加密時要注意幾點:
1.密碼是中文的:md5Hasher.ComputeHash(Encoding.GetEncoding("gb2312").GetBytes("中文"));
英文的要注意轉換字元集(對於常用的MS有點反了,反正針對密碼所用的字元集就行了)
2.如果要匹配資料庫的密碼,sql的md5加密是補足位數的,而網上的演算法沒有做這件事,所以經常會出現少幾位的情況,而且少的幾位肯定是「0」所以要注意補0,也就是ToString("X2")
貼一段代碼:
static void Main(string[] args)
{
MD5CryptoServiceProvider md5Hasher = new MD5CryptoServiceProvider();
byte[] hashedDataBytes;
hashedDataBytes = md5Hasher.ComputeHash(Encoding.GetEncoding("gb2312").GetBytes("中文"));
StringBuilder tmp = new StringBuilder();
foreach (byte i in hashedDataBytes)
{
tmp.Append(i.ToString("x2")); //就是這里的處理
}
Console.WriteLine(tmp.ToString());
Console.Read();
}
⑶ MD5加密最長允許多少位元組的字元串
MD5加密後的值是128bit的,按4位二進制組合成一個十六進制,所以最後出來的十六進制字元串是32個,比如。
要說被MD5加密的字元串,是沒有限制的。
⑷ MD5加密後如何轉換為16進制字元串
要看你是什麼編碼。
如果是ASC碼那麼就是8位2進制一個字元,也就是兩個十六進制位。
所以,你可以將這個十六進制字元串除0x以外,兩位一組,每一組可以使用CHAR(0x0C)的方式轉換為字元,再串加在一起就行了。
如果是UNICODE字元,那麼就是4位十六進制(16位二進制)一組進行轉換。
如第一個字元就是:select nchar(0x0C45),第二個字元就是select nchar(0x0000)
⑸ md5加密以後的字元串長度
加密後為128位(bit),按照16進制(4位一個16進制數)編碼後,就成了32個字元。MD5並不是加密演算法,而是摘要演算法。加密演算法是可逆的,摘要演算法是理專論上不可逆的,詳細步驟:
1、md5演算法主要應用在密碼領域,為了防止明文傳輸密碼的危險性,一般會用密碼的md5值來代替密碼本身。
⑹ 在php5中md5在加密字元串後如何解密
MD5加密是不能逆運算的,現在的破解大都是窮盡法,就是有一個龐大的MD5碼對照表放在那裡,然後一個一個去對照著查。
⑺ 如何對md5加密後的字元串進行壓縮
你這個壓縮有什麼需求嗎?你給的這段字元串其實用目前的壓縮演算法的話,基本上是不會減少你的字串的長度。你是需要知道具體的演算法呢,還是希望對MD5的結果有所改進。