PHP的sha256輸出一個字符串,它是64個字符長,因爲它的基數爲16. 我如何將它轉換爲基數64以減少其長度?基地64哈希使URL更短
1
A
回答
8
base64_encode(hash('sha256', 'hello', true));
0
要轉換之間的鹼基使用http://php.net/manual/en/function.base-convert.php
上述答案去,這不每個註釋在這裏工作。
2
如果你已經有了哈希,並且不控制它那一代,然後像下面應該工作:
<?php
function hex2char($c) {
return chr(hexdec($c));
}
function char2hex($c) {
return str_pad(dechex(ord($c)),2,"0",STR_PAD_LEFT);
}
function base16to64($v) {
return base64_encode(implode(array_map("hex2char", str_split($v,2))));
}
function base64to16($v) {
return implode(array_map("char2hex",str_split(base64_decode($v),1)));
}
$input = hash('sha256', 'hello');
print($input . "\n");
print(base16to64($input) . "\n");
print(base64to16(base16to64($input)) . "\n");
?>
返回:
2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
LPJNul+wow4m6DsqxbninhsWHlwfp0JecwQzYpOLmCQ=
2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
將散列的大小從64減小到44.
相關問題
- 1. 哈希(#)的URL
- 2. 點擊基於URL的哈希值
- 3. 「next」 - 基於哈希URL的鏈接。 (javascript)
- 4. URL哈希W /使用Javascript
- 5. 基本字符串哈希/去哈希
- 6. 最短的哈希值
- 7. URL哈希古怪
- 8. URL哈希滑塊
- 9. 哈希URL和AngularJS
- 10. 使用GitVersion縮短提交哈希
- 11. 更改div內容和哈希URL
- 12. 更新窗口哈希(在URL)
- 13. Jquery哈希值更改url滑塊
- 14. jQuery和SVG地圖。 URL哈希沒有正確更新
- 15. 即使哈希值沒有變化,jQuery地址哈希更改觸發器
- 16. 地圖哈希表
- 17. 使用Javascript設置基於URL哈希的選定選項
- 18. 轉換DJB哈希到64位
- 19. 在MySQL表64位密碼哈希
- 20. jquery鏈接和URL哈希
- 21. 哈希導航URL構造
- 22. 刪除哈希URL(燈箱)
- 23. 在url中的Ajax哈希
- 24. 檢查URL - 哈希+鹽
- 25. jQuery的 - 獲取URL哈希
- 26. 使用哈希URL的SEO影響?
- 27. 使用Request.UrlReferrer保留url哈希值
- 28. 使用Flexslider哈希URL導航
- 29. 使用URL和哈希引導滾動
- 30. 哈希位置的基礎
長度從64降低到44個字符 – hidarikani 2011-06-09 07:49:48
我不知道長度可以從哈希到哈希 – hidarikani 2011-06-09 07:54:43
不一樣。由於sha-256的輸出始終爲32個字節,因此base64版本將始終爲44個字節。 – 2011-06-09 08:03:39