JAVAで実現されたRC 4暗号解読アルゴリズムの例


本明細書の例は、Java実装のRC 4暗号解読アルゴリズムを説明する。皆さんに参考にしてあげます。具体的には以下の通りです。
あるプロジェクトでは、ユーザーが提供したrc 4暗号化されたファイルを解析し、Javaバージョンを整理したRC 4の復号アルゴリズムをわざわざ検索する必要があります。

public static String HloveyRC4(String aInput,String aKey)
{
    int[] iS = new int[256];
    byte[] iK = new byte[256];
    for (int i=0;i<256;i++)
      iS[i]=i;
    int j = 1;
    for (short i= 0;i<256;i++)
    {
      iK[i]=(byte)aKey.charAt((i % aKey.length()));
    }
    j=0;
    for (int i=0;i<255;i++)
    {
      j=(j+iS[i]+iK[i]) % 256;
      int temp = iS[i];
      iS[i]=iS[j];
      iS[j]=temp;
    }
    int i=0;
    j=0;
    char[] iInputChar = aInput.toCharArray();
    char[] iOutputChar = new char[iInputChar.length];
    for(short x = 0;x<iInputChar.length;x++)
    {
      i = (i+1) % 256;
      j = (j+iS[i]) % 256;
      int temp = iS[i];
      iS[i]=iS[j];
      iS[j]=temp;
      int t = (iS[i]+(iS[j] % 256)) % 256;
      int iY = iS[t];
      char iCY = (char)iY;
      iOutputChar[x] =(char)( iInputChar[x] ^ iCY) ;
    }
    return new String(iOutputChar);
}

暗号化と復号はこの方法で行います。つまり、パラメータString aInputは明文を送ることができます。暗号化された文字列を送ることもできます。プログラムは自動的に認識されます。その後、復号化の応答動作を実行します。
使用例は以下の通りです。

public static void main(String[] args) {
  String inputStr = "     ";
  String key = "abcdefg";
  String str = HloveyRC4(inputStr,key);
  //         
  System.out.println(str);
  //         
  System.out.println(HloveyRC4(str,key));
}

PS:暗号解読に興味のある友達は、当駅のオンラインツールも参照できます。
MD 5オンライン暗号化ツール:
http://tools.jb51.net/password/CreateMD5Password
雷、快速、旋風URL暗号化/復号ツール:
http://tools.jb51.net/password/urlrethunder
オンラインハッシュ/ハッシュアルゴリズム暗号化ツール:
http://tools.jb51.net/password/hash_encrypt
オンラインMD 5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160暗号化ツール:
http://tools.jb51.net/password/hash_md 5_share
オンラインshar 1/shar 224/shar 256/shar 384/shar 512暗号化ツール:
http://tools.jb51.net/password/sha_アンコール
java関連の内容についてもっと興味がある読者は、当駅のテーマを調べてもいいです。「Java数学演算技術のまとめ」、「Javaデータ構造とアルゴリズム教程」、「Java文字と文字列操作テクニックのまとめ」、「java日付と時間操作テクニックのまとめ」、「Java操作DOMノード技術のまとめ」、「Javaキャッシュ操作テクニックのまとめ
本論文で述べたように、皆さんのjavaプログラムの設計に役に立ちます。