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

📄 dilog.java

📁 《加密与解密》随书光盘(四)工具 本书在第一版的基础上,更新了第一版中的过时内容。 本书共分三个部分。 第一部分介绍与加密和解密技术相关的基础知识。 第二部分全面讲述各种最新的软件加密与解密技
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
      case 3:
        Prod0 = Prod1 = Prod2 = 0;
      TestNbr2 = TestNbr[2];
      Nbr2_0 = Nbr2[0];
      Nbr2_1 = Nbr2[1];
      Nbr2_2 = Nbr2[2];
      i = 0;
      do {
        Nbr = Nbr1[i];
        Pr = Nbr*Nbr2_0 + Prod0;
        ProdB0 = Pr & DosALa32_1;
        Pr = (Pr >>> 32) + Nbr*Nbr2_1 + Prod1;
        Prod0 = Pr & DosALa32_1;
        Pr = (Pr >>> 32) + Nbr*Nbr2_2 + Prod2;
        Prod1 = Pr & DosALa32_1;
        Prod2 = (Pr >>> 32);
        Nbr = (ProdB0 * MontgomeryMultN) & DosALa32_1;
        Pr = ((Nbr*TestNbr0 + ProdB0) >>> 32) + Nbr*TestNbr1 + Prod0;
        Prod0 = Pr & DosALa32_1;
        Pr = (Pr >>> 32) + Nbr*TestNbr2 + Prod1;
        Prod1 = Pr & DosALa32_1;
        Prod2 += (Pr >>> 32);
        i++;
      } while (i<3);
      if (Prod2 > TestNbr2 || Prod2 == TestNbr2 &&
        (Prod1 > TestNbr1 || Prod1 == TestNbr1 &&
          (Prod0 >= TestNbr0))) {
        Pr = Prod0 - TestNbr0;
        Prod0 = Pr & DosALa32_1;
        Pr = (Pr>=0?0:-1) + Prod1 - TestNbr1;
        Prod1 = Pr & DosALa32_1;
        Pr = (Pr>=0?0:-1) + Prod2 - TestNbr2;
        Prod2 = Pr & DosALa32_1;
      }
      Prod[0] = Prod0;
      Prod[1] = Prod1;
      Prod[2] = Prod2;
      break;

      case 4:
        Prod0 = Prod1 = Prod2 = Prod3 = 0;
      TestNbr2 = TestNbr[2];
      TestNbr3 = TestNbr[3];
      Nbr2_0 = Nbr2[0];
      Nbr2_1 = Nbr2[1];
      Nbr2_2 = Nbr2[2];
      Nbr2_3 = Nbr2[3];
      i = 0;
      do {
        Nbr = Nbr1[i];
        Pr = Nbr*Nbr2_0 + Prod0;
        ProdB0 = Pr & DosALa32_1;
        Pr = (Pr >>> 32) + Nbr*Nbr2_1 + Prod1;
        Prod0 = Pr & DosALa32_1;
        Pr = (Pr >>> 32) + Nbr*Nbr2_2 + Prod2;
        Prod1 = Pr & DosALa32_1;
        Pr = (Pr >>> 32) + Nbr*Nbr2_3 + Prod3;
        Prod2 = Pr & DosALa32_1;
        Prod3 = (Pr >>> 32);
        Nbr = (ProdB0 * MontgomeryMultN) & DosALa32_1;
        Pr = ((Nbr*TestNbr0 + ProdB0) >>> 32) + Nbr*TestNbr1 + Prod0;
        Prod0 = Pr & DosALa32_1;
        Pr = (Pr >>> 32) + Nbr*TestNbr2 + Prod1;
        Prod1 = Pr & DosALa32_1;
        Pr = (Pr >>> 32) + Nbr*TestNbr3 + Prod2;
        Prod2 = Pr & DosALa32_1;
        Prod3 += (Pr >>> 32);
        i++;
      } while (i<4);
      if (Prod3 > TestNbr3 || Prod3 == TestNbr3 &&
        (Prod2 > TestNbr2 || Prod2 == TestNbr2 &&
          (Prod1 > TestNbr1 || Prod1 == TestNbr1 &&
            (Prod0 >= TestNbr0)))) {
        Pr = Prod0 - TestNbr0;
        Prod0 = Pr & DosALa32_1;
        Pr = (Pr>=0?0:-1) + Prod1 - TestNbr1;
        Prod1 = Pr & DosALa32_1;
        Pr = (Pr>=0?0:-1) + Prod2 - TestNbr2;
        Prod2 = Pr & DosALa32_1;
        Pr = (Pr>=0?0:-1) + Prod3 - TestNbr3;
        Prod3 = Pr & DosALa32_1;
      }
      Prod[0] = Prod0;
      Prod[1] = Prod1;
      Prod[2] = Prod2;
      Prod[3] = Prod3;
      break;

      case 5:
        Prod0 = Prod1 = Prod2 = Prod3 = Prod4 = 0;
      TestNbr2 = TestNbr[2];
      TestNbr3 = TestNbr[3];
      TestNbr4 = TestNbr[4];
      Nbr2_0 = Nbr2[0];
      Nbr2_1 = Nbr2[1];
      Nbr2_2 = Nbr2[2];
      Nbr2_3 = Nbr2[3];
      Nbr2_4 = Nbr2[4];
      i = 0;
      do {
        Nbr = Nbr1[i];
        Pr = Nbr*Nbr2_0 + Prod0;
        ProdB0 = Pr & DosALa32_1;
        Pr = (Pr >>> 32) + Nbr*Nbr2_1 + Prod1;
        Prod0 = Pr & DosALa32_1;
        Pr = (Pr >>> 32) + Nbr*Nbr2_2 + Prod2;
        Prod1 = Pr & DosALa32_1;
        Pr = (Pr >>> 32) + Nbr*Nbr2_3 + Prod3;
        Prod2 = Pr & DosALa32_1;
        Pr = (Pr >>> 32) + Nbr*Nbr2_4 + Prod4;
        Prod3 = Pr & DosALa32_1;
        Prod4 = (Pr >>> 32);
        Nbr = (ProdB0 * MontgomeryMultN) & DosALa32_1;
        Pr = ((Nbr*TestNbr0 + ProdB0) >>> 32) + Nbr*TestNbr1 + Prod0;
        Prod0 = Pr & DosALa32_1;
        Pr = (Pr >>> 32) + Nbr*TestNbr2 + Prod1;
        Prod1 = Pr & DosALa32_1;
        Pr = (Pr >>> 32) + Nbr*TestNbr3 + Prod2;
        Prod2 = Pr & DosALa32_1;
        Pr = (Pr >>> 32) + Nbr*TestNbr4 + Prod3;
        Prod3 = Pr & DosALa32_1;
        Prod4 += (Pr >>> 32);
        i++;
      } while (i<5);
      if (Prod4 > TestNbr4 || Prod4 == TestNbr4 &&
        (Prod3 > TestNbr3 || Prod3 == TestNbr3 &&
          (Prod2 > TestNbr2 || Prod2 == TestNbr2 &&
            (Prod1 > TestNbr1 || Prod1 == TestNbr1 &&
              (Prod0 >= TestNbr0))))) {
        Pr = Prod0 - TestNbr0;
        Prod0 = Pr & DosALa32_1;
        Pr = (Pr>=0?0:-1) + Prod1 - TestNbr1;
        Prod1 = Pr & DosALa32_1;
        Pr = (Pr>=0?0:-1) + Prod2 - TestNbr2;
        Prod2 = Pr & DosALa32_1;
        Pr = (Pr>=0?0:-1) + Prod3 - TestNbr3;
        Prod3 = Pr & DosALa32_1;
        Pr = (Pr>=0?0:-1) + Prod4 - TestNbr4;
        Prod4 = Pr & DosALa32_1;
      }
      Prod[0] = Prod0;
      Prod[1] = Prod1;
      Prod[2] = Prod2;
      Prod[3] = Prod3;
      Prod[4] = Prod4;
      break;

      case 6:
        Prod0 = Prod1 = Prod2 = Prod3 = Prod4 = Prod5 = 0;
      TestNbr2 = TestNbr[2];
      TestNbr3 = TestNbr[3];
      TestNbr4 = TestNbr[4];
      TestNbr5 = TestNbr[5];
      Nbr2_0 = Nbr2[0];
      Nbr2_1 = Nbr2[1];
      Nbr2_2 = Nbr2[2];
      Nbr2_3 = Nbr2[3];
      Nbr2_4 = Nbr2[4];
      Nbr2_5 = Nbr2[5];
      i = 0;
      do {
        Nbr = Nbr1[i];
        Pr = Nbr*Nbr2_0 + Prod0;
        ProdB0 = Pr & DosALa32_1;
        Pr = (Pr >>> 32) + Nbr*Nbr2_1 + Prod1;
        Prod0 = Pr & DosALa32_1;
        Pr = (Pr >>> 32) + Nbr*Nbr2_2 + Prod2;
        Prod1 = Pr & DosALa32_1;
        Pr = (Pr >>> 32) + Nbr*Nbr2_3 + Prod3;
        Prod2 = Pr & DosALa32_1;
        Pr = (Pr >>> 32) + Nbr*Nbr2_4 + Prod4;
        Prod3 = Pr & DosALa32_1;
        Pr = (Pr >>> 32) + Nbr*Nbr2_5 + Prod5;
        Prod4 = Pr & DosALa32_1;
        Prod5 = (Pr >>> 32);
        Nbr = (ProdB0 * MontgomeryMultN) & DosALa32_1;
        Pr = ((Nbr*TestNbr0 + ProdB0) >>> 32) + Nbr*TestNbr1 + Prod0;
        Prod0 = Pr & DosALa32_1;
        Pr = (Pr >>> 32) + Nbr*TestNbr2 + Prod1;
        Prod1 = Pr & DosALa32_1;
        Pr = (Pr >>> 32) + Nbr*TestNbr3 + Prod2;
        Prod2 = Pr & DosALa32_1;
        Pr = (Pr >>> 32) + Nbr*TestNbr4 + Prod3;
        Prod3 = Pr & DosALa32_1;
        Pr = (Pr >>> 32) + Nbr*TestNbr5 + Prod4;
        Prod4 = Pr & DosALa32_1;
        Prod5 += (Pr >>> 32);
        i++;
      } while (i<6);
      if (Prod5 > TestNbr5 || Prod5 == TestNbr5 &&
        (Prod4 > TestNbr4 || Prod4 == TestNbr4 &&
          (Prod3 > TestNbr3 || Prod3 == TestNbr3 &&
            (Prod2 > TestNbr2 || Prod2 == TestNbr2 &&
              (Prod1 > TestNbr1 || Prod1 == TestNbr1 &&
                (Prod0 >= TestNbr0)))))) {
        Pr = Prod0 - TestNbr0;
        Prod0 = Pr & DosALa32_1;
        Pr = (Pr>=0?0:-1) + Prod1 - TestNbr1;
        Prod1 = Pr & DosALa32_1;
        Pr = (Pr>=0?0:-1) + Prod2 - TestNbr2;
        Prod2 = Pr & DosALa32_1;
        Pr = (Pr>=0?0:-1) + Prod3 - TestNbr3;
        Prod3 = Pr & DosALa32_1;
        Pr = (Pr>=0?0:-1) + Prod4 - TestNbr4;
        Prod4 = Pr & DosALa32_1;
        Pr = (Pr>=0?0:-1) + Prod5 - TestNbr5;
        Prod5 = Pr & DosALa32_1;
      }
      Prod[0] = Prod0;
      Prod[1] = Prod1;
      Prod[2] = Prod2;
      Prod[3] = Prod3;
      Prod[4] = Prod4;
      Prod[5] = Prod5;
      break;

      case 7:
        Prod0 = Prod1 = Prod2 = Prod3 = Prod4 = Prod5 = Prod6 = 0;
      TestNbr2 = TestNbr[2];
      TestNbr3 = TestNbr[3];
      TestNbr4 = TestNbr[4];
      TestNbr5 = TestNbr[5];
      TestNbr6 = TestNbr[6];
      Nbr2_0 = Nbr2[0];
      Nbr2_1 = Nbr2[1];
      Nbr2_2 = Nbr2[2];
      Nbr2_3 = Nbr2[3];
      Nbr2_4 = Nbr2[4];
      Nbr2_5 = Nbr2[5];
      Nbr2_6 = Nbr2[6];
      i = 0;
      do {
        Nbr = Nbr1[i];
        Pr = Nbr*Nbr2_0 + Prod0;
        ProdB0 = Pr & DosALa32_1;
        Pr = (Pr >>> 32) + Nbr*Nbr2_1 + Prod1;
        Prod0 = Pr & DosALa32_1;
        Pr = (Pr >>> 32) + Nbr*Nbr2_2 + Prod2;
        Prod1 = Pr & DosALa32_1;
        Pr = (Pr >>> 32) + Nbr*Nbr2_3 + Prod3;
        Prod2 = Pr & DosALa32_1;
        Pr = (Pr >>> 32) + Nbr*Nbr2_4 + Prod4;
        Prod3 = Pr & DosALa32_1;
        Pr = (Pr >>> 32) + Nbr*Nbr2_5 + Prod5;
        Prod4 = Pr & DosALa32_1;
        Pr = (Pr >>> 32) + Nbr*Nbr2_6 + Prod6;
        Prod5 = Pr & DosALa32_1;
        Prod6 = (Pr >>> 32);
        Nbr = (ProdB0 * MontgomeryMultN) & DosALa32_1;
        Pr = ((Nbr*TestNbr0 + ProdB0) >>> 32) + Nbr*TestNbr1 + Prod0;
        Prod0 = Pr & DosALa32_1;
        Pr = (Pr >>> 32) + Nbr*TestNbr2 + Prod1;
        Prod1 = Pr & DosALa32_1;
        Pr = (Pr >>> 32) + Nbr*TestNbr3 + Prod2;
        Prod2 = Pr & DosALa32_1;
        Pr = (Pr >>> 32) + Nbr*TestNbr4 + Prod3;
        Prod3 = Pr & DosALa32_1;
        Pr = (Pr >>> 32) + Nbr*TestNbr5 + Prod4;
        Prod4 = Pr & DosALa32_1;
        Pr = (Pr >>> 32) + Nbr*TestNbr6 + Prod5;
        Prod5 = Pr & DosALa32_1;
        Prod6 += (Pr >>> 32);
        i++;
      } while (i<7);
      if (Prod6 > TestNbr6 || Prod6 == TestNbr6 &&
        (Prod5 > TestNbr5 || Prod5 == TestNbr5 &&
          (Prod4 > TestNbr4 || Prod4 == TestNbr4 &&
            (Prod3 > TestNbr3 || Prod3 == TestNbr3 &&
              (Prod2 > TestNbr2 || Prod2 == TestNbr2 &&
                (Prod1 > TestNbr1 || Prod1 == TestNbr1 &&
                  (Prod0 >= TestNbr0))))))) {
        Pr = Prod0 - TestNbr0;
        Prod0 = Pr & DosALa32_1;
        Pr = (Pr>=0?0:-1) + Prod1 - TestNbr1;
        Prod1 = Pr & DosALa32_1;
        Pr = (Pr>=0?0:-1) + Prod2 - TestNbr2;
        Prod2 = Pr & DosALa32_1;
        Pr = (Pr>=0?0:-1) + Prod3 - TestNbr3;
        Prod3 = Pr & DosALa32_1;
        Pr = (Pr>=0?0:-1) + Prod4 - TestNbr4;
        Prod4 = Pr & DosALa32_1;
        Pr = (Pr>=0?0:-1) + Prod5 - TestNbr5;
        Prod5 = Pr & DosALa32_1;
        Pr = (Pr>=0?0:-1) + Prod6 - TestNbr6;
        Prod6 = Pr & DosALa32_1;
      }
      Prod[0] = Prod0;
      Prod[1] = Prod1;
      Prod[2] = Prod2;
      Prod[3] = Prod3;
      Prod[4] = Prod4;
      Prod[5] = Prod5;
      Prod[6] = Prod6;
      break;

      case 8:
        Prod0 = Prod1 = Prod2 = Prod3 = Prod4 = Prod5 = Prod6 = Prod7 = 0;
      TestNbr2 = TestNbr[2];
      TestNbr3 = TestNbr[3];
      TestNbr4 = TestNbr[4];
      TestNbr5 = TestNbr[5];
      TestNbr6 = TestNbr[6];
      TestNbr7 = TestNbr[7];
      Nbr2_0 = Nbr2[0];
      Nbr2_1 = Nbr2[1];
      Nbr2_2 = Nbr2[2];
      Nbr2_3 = Nbr2[3];
      Nbr2_4 = Nbr2[4];
      Nbr2_5 = Nbr2[5];
      Nbr2_6 = Nbr2[6];
      Nbr2_7 = Nbr2[7];
      i = 0;
      do {
        Nbr = Nbr1[i];
        Pr = Nbr*Nbr2_0 + Prod0;
        ProdB0 = Pr & DosALa32_1;
        Pr = (Pr >>> 32) + Nbr*Nbr2_1 + Prod1;
        Prod0 = Pr & DosALa32_1;
        Pr = (Pr >>> 32) + Nbr*Nbr2_2 + Prod2;
        Prod1 = Pr & DosALa32_1;
        Pr = (Pr >>> 32) + Nbr*Nbr2_3 + Prod3;
        Prod2 = Pr & DosALa32_1;
        Pr = (Pr >>> 32) + Nbr*Nbr2_4 + Prod4;
        Prod3 = Pr & DosALa32_1;
        Pr = (Pr >>> 32) + Nbr*Nbr2_5 + Prod5;
        Prod4 = Pr & DosALa32_1;
        Pr = (Pr >>> 32) + Nbr*Nbr2_6 + Prod6;
        Prod5 = Pr & DosALa32_1;
        Pr = (Pr >>> 32) + Nbr*Nbr2_7 + Prod7;
        Prod6 = Pr & DosALa32_1;
        Prod7 = (Pr >>> 32);
        Nbr = (ProdB0 * MontgomeryMultN) & DosALa32_1;
        Pr = ((Nbr*TestNbr0 + ProdB0) >>> 32) + Nbr*TestNbr1 + Prod0;
        Prod0 = Pr & DosALa32_1;
        Pr = (Pr >>> 32) + Nbr*TestNbr2 + Prod1;
        Prod1 = Pr & DosALa32_1;
        Pr = (Pr >>> 32) + Nbr*TestNbr3 + Prod2;
        Prod2 = Pr & DosALa32_1;
        Pr = (Pr >>> 32) + Nbr*TestNbr4 + Prod3;
        Prod3 = Pr & DosALa32_1;
        Pr = (Pr >>> 32) + Nbr*TestNbr5 + Prod4;
        Prod4 = Pr & DosALa32_1;
        Pr = (Pr >>> 32) + Nbr*TestNbr6 + Prod5;
        Prod5 = Pr & DosALa32_1;
        Pr = (Pr >>> 32) + Nbr*TestNbr7 + Prod6;
        Prod6 = Pr & DosALa32_1;
        Prod7 += (Pr >>> 32);
        i++;
      } while (i<8);
      if (Prod7 > TestNbr7 || Prod7 == TestNbr7 &&
        (Prod6 > TestNbr6 || Prod6 == TestNbr6 &&
          (Prod5 > TestNbr5 || Prod5 == TestNbr5 &&
            (Prod4 > TestNbr4 || Prod4 == TestNbr4 &&
              (Prod3 > TestNbr3 || Prod3 == TestNbr3 &&
                (Prod2 > TestNbr2 || Prod2 == TestNbr2 &&
                  (Prod1 > TestNbr1 || Prod1 == TestNbr1 &&
                    (Prod0 >= TestNbr0)))))))) {
        Pr = Prod0 - TestNbr0;
        Prod0 = Pr & DosALa32_1;
        Pr = (Pr>=0?0:-1) + Prod1 - TestNbr1;
        Prod1 = Pr & DosALa32_1;
        Pr = (Pr>=0?0:-1) + Prod2 - TestNbr2;
        Prod2 = Pr & DosALa32_1;
        Pr = (Pr>=0?0:-1) + Prod3 - TestNbr3;
        Prod3 = Pr & DosALa32_1;
        Pr = (Pr>=0?0:-1) + Prod4 - TestNbr4;
        Prod4 = Pr & DosALa32_1;
        Pr = (Pr>=0?0:-1) + Prod5 - TestNbr5;
        Prod5 = Pr & DosALa32_1;
        Pr = (Pr>=0?0:-1) + Prod6 - TestNbr6;
        Prod6 = Pr & DosALa32_1;
        Pr = (Pr>=0?0:-1) + Prod7 - TestNbr7;
        Prod7 = Pr & DosALa32_1;
      }

⌨️ 快捷键说明

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