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哈希W /使用Javascript
- 2. URL哈希古怪
- 3. 哈希URL和AngularJS
- 4. 使用GitVersion缩短提交哈希
- 5. Jquery哈希值更改url滑块
- 6. 更新窗口哈希(在URL)
- 7. jQuery和SVG地图。 URL哈希没有正确更新
- 8. 即使哈希值没有变化,jQuery地址哈希更改触发器
- 9. 地图哈希表
- 10. 使用Javascript设置基于URL哈希的选定选项
- 11. 转换DJB哈希到64位
- 12. 删除哈希URL(灯箱)
- 13. jQuery的 - 获取URL哈希
- 14. 检查URL - 哈希+盐
- 15. 在url中的Ajax哈希
- 16. 哈希导航URL构造
- 17. 使用Request.UrlReferrer保留url哈希值
- 18. 使用Flexslider哈希URL导航
- 19. 使用哈希URL的SEO影响?
- 20. MD5哈希更快
- 21. SEO:大数值哈希VS短的人
- 22. 用哈希缩短长网址?
- 23. 在Backbone.js中结合哈希和非哈希URL
- 24. jQuery同位素哈希历史:美化哈希URL
- 25. 使用JavaScript检测URL的哈希值更改
- 26. 如何在使用fullpage.js时根据URL哈希更改图像?
- 27. 使用哈希
- 28. 的Java地图哈希码
- 29. perl:使用地图获取哈希值
- 30. 滑动到图像基于URL哈希或选项卡选择
长度从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