⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 operator.java

📁 ECLIPSE 3.3工程. AES算法的应用.
💻 JAVA
字号:
public class Operator {
  // 异或
  public byte[] XOR(byte[] w, byte[] k) {
    byte[] Z = new byte[4];
    for (int i = 0; i < 4; i++) {
      Z[i] = (byte) (w[i] ^ k[i]);
    }
    return Z;
  }
  // 将String变成Byte数组
  public byte[] ToByte(String Z) {
    byte[] ZK = new byte[Z.length()];
    for (int i = 0; i < Z.length(); i++) {
      ZK[i] = (byte) Z.charAt(i);
    }
    return ZK;
  }
  // 将String变成Byte数组
  public void ToByte(byte[][] ZK, String Z) {
    int zc = Z.length() / 4;
    for (int j = 0; j < zc; j++) {
      int fenz = (j + 1) * 4;
      String Z_K = Z.substring((j * 4), fenz);
      for (int i = 0; i < 4; i++) {
        ZK[j][i] = (byte) Z_K.charAt(i);
      }
    }
  }
  // 将Byte数组变成String
  public String ToString(byte[] Z) {
    String z = "";
    for (int i = 0; i < Z.length; i++) {
      char m = (char) Z[i];
      z += m;
    }
    return z;
  }
  // 异或
  public byte[] XOR(byte[] w, byte[] z, int kc) {
    byte[] Z = new byte[kc];
    for (int i = 0; i < kc; i++) {
      Z[i] = (byte) (w[i] ^ z[i]);
    }
    return Z;
  }
  // 异或
  public byte[] XOR(byte[] w, byte[] z, byte[] k, int kc) {
    byte[] Z = new byte[kc];
    for (int i = 0; i < kc; i++) {
      Z[i] = (byte) (w[i] ^ z[i] ^ k[i]);
    }
    return Z;
  }
  // AES乘法
  public byte mulByTwoPolynomials(byte w, byte k) {
    int i = 0;
    byte x = k;
    byte m = 0x00;
    while (x != 0) {
      if (x < 0) {
        int j = 8;
        if (i != 0) {
          j = 8 - i;
        }
        byte Z = mulByTwoPolynomials(w, j - 1);
        x = (byte) (x ^ 0x80);
        m = (byte) (m ^ Z);
      }
      else {
        x = (byte) (x << 1);
        i++;
      }
    }
    return m;
  }
  public byte mulByTwoPolynomials(byte x, int k) {
    int X = x;
    for (int i = 0; i < k; i++) {
      X = X << 1;
      if (X > 255) {
        X = X ^ 0x011b;
      }
    }
    return (byte) X;
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -