如果我有一个32个字符的字符串(MD5哈希值),并将其使用Base64编码,那么编码后的字符串的最大长度是多少?
答案:编码后的字符串最大长度为44个字符。如果我有一个32个字符的字符串(MD5哈希值),并将其使用Base64编码,那么编码后的字符串的最大长度是多少?
答案:编码后的字符串最大长度为44个字符。MD5 128位以Base64表示为22个字符,同时在此情况下还有2个填充字符"="。
如何实现?
$ md5sum ./README.md
c6b5f48774aa0a87a82a276ff86be507 ./README.md
$ md5sum ./README.md | base64
YzZiNWY0ODc3NGFhMGE4N2E4MmEyNzZmZjg2YmU1MDcgIC4vUkVBRE1FLm1kCg==
$ cat ./README.md | openssl dgst -md5
c6b5f48774aa0a87a82a276ff86be507
$ cat ./README.md | openssl dgst -md5 -binary | openssl enc -base64
xrX0h3SqCoeoKidv+GvlBw==
$ md5sum ./LICENSE
e3fc50a88d0a364313df4b21ef20c29e ./LICENSE
$ cat ./LICENSE | openssl dgst -md5 -binary | openssl enc -base64
4/xQqI0KNkMT30sh7yDCng==
$ (echo 0:; echo e3fc50a88d0a364313df4b21ef20c29e) | xxd -rp -l 16|base64
4/xQqI0KNkMT30sh7yDCng==