zoukankan      html  css  js  c++  java
  • 为什么加密后的数据往往都是base64输出而不是hex16进制输出

    通常加密后的数据都是字节数组,比如流行的aes128对称加密,还有Rsa非对称加密,加密后得到了一个字节数组,这个字节数组存在内存中,往往我们需要输出得到我们人眼能看到的字符。

    加密aes(xxx) = 3个字节的数组

    3Byte = 24bit

    当然你可以把一个Byte根据ansill码 直接转换成字符,但是有些字符是不可见的,还有一些特殊符号,所以把Byte直接依据anscill码来转换不现实。

    若把3Byte 按 base64码表来转换 会得出 4个字符,因为 3*8 = 4* 6 .

    若把3Byte直接按16进制来转换成字符的话 会得出 3*2 = 6个字符,可见把加密后是数据转成16进制来输出的话字符数会更多,变得更长,所以不好。

    1个字节 = 2个16进制字符,4个bit一组

    而base64 是6个bit一组,所以转换后的字符数会更短。

    故加密后是字节数组往往以base64码表来输出。

    太累了 头疼,写的可能比较乱,以后在整理

  • 相关阅读:
    harbor docker
    dns服务器
    k8s
    frps
    svn 搭建
    phpstrom 破解 转载https://www.jianshu.com/p/e71361b3bfee
    公开课
    k8s
    rsync各种备份
    定时任务
  • 原文地址:https://www.cnblogs.com/del88/p/15742360.html
Copyright © 2011-2022 走看看