乐趣区

关于android:密码学-01-HEX

1. 简介:

Hex 编码是一种用 16 个字符示意任意二进制数据的办法。它是一种编码,而非加密
码表为 “0123456789ABCDEF” 这 16 个字符。能够自行批改为改编版本。
字符编码
URL 编码

2. Hex 编码的代码实现和码表

  • java 中:

    public static void main(String[] args) {
      String name = "小肩膀";
      byte[] bytes = name.getBytes(StandardCharsets.UTF_8);
      System.out.println(bytes.length);
      System.out.println(Arrays.toString(bytes));
      String encode = HexBin.encode(bytes);
      String encode1= encode(bytes);
      System.out.println(encode);
      System.out.println(encode1);
      }
  • Android 中:

    • 配置: app-> build.gradle–> dependencies 中减少如下

      api "com.squareup.okhttp3:okhttp:3.10.0"
    • 代码

      String name = "小肩膀";
      byte[] bytes = name.getBytes(StandardCharsets.UTF_8);
      ByteString byteString = ByteString.of(bytes);
      System.out.println(byteString.hex());

    Hex 编码特点

    a) 用 0 -9 a-f 16 个字符示意。
    b) 每个十六进制字符代表 4bit, 也就是 2 个十六进制字符代表一个字节。
    c) 在理论利用中,比方密钥初始化,肯定要分分明传进去的密钥是哪种编码的,采纳对应 形式解析,能力失去正确的后果
    d) 编程中很多问题,须要从字节甚至二进制位的角度去思考,能力明确

退出移动版