2012-07-05 11 views
6

私のアプリでは、いくつかの暗号化を実装したかったのです。したがって、私はVigenere暗号のコードが必要です。誰かが私がJavaのソースコードをどこに見つけることができるか知っていますか?Vigenere暗号のJavaソースコードはどこにありますか?

+2

AFAIKこれはかなりシンプルな暗号ですが、自分で実装するのはなぜですか?実際にJava暗号化ライブラリに実装があるかどうかを確認することはできますが、実際のアプリケーションではVigenere暗号を使用することはお勧めしません。 – Egor

+0

あなたの回答はこちらのリンク先 http://stackoverflow.com/questions/10280637/vigenere-cipher-in-java-for-all-utf-8-characters –

答えて

2

ここにVigenere暗号コードの実装Sample Java Code to Encrypt and Decrypt using Vigenere Cipherへのリンクがありますが、Vigenere暗号を暗号化として使用することはお勧めできません。

jBCryptをお勧めします。

+1

あなたが投稿したリンクは現在死んでいます。 – GeoGriffin

+0

@GeoGriffin指摘してくれてありがとう、私は別の例へのリンクを更新しました。 –

+0

リンクがもう一度死んでしまった。 – Omore

11

これはVigenere暗号クラスです。暗号化と復号化関数を呼び出すだけで使用できます。コードはRosetta Codeです。

public class VigenereCipher { 
    public static void main(String[] args) { 
     String key = "VIGENERECIPHER"; 
     String ori = "Beware the Jabberwock, my son! The jaws that bite, the claws that catch!"; 
     String enc = encrypt(ori, key); 
     System.out.println(enc); 
     System.out.println(decrypt(enc, key)); 
    } 

    static String encrypt(String text, final String key) { 
     String res = ""; 
     text = text.toUpperCase(); 
     for (int i = 0, j = 0; i < text.length(); i++) { 
      char c = text.charAt(i); 
      if (c < 'A' || c > 'Z') continue; 
      res += (char)((c + key.charAt(j) - 2 * 'A') % 26 + 'A'); 
      j = ++j % key.length(); 
     } 
     return res; 
    } 

    static String decrypt(String text, final String key) { 
     String res = ""; 
     text = text.toUpperCase(); 
     for (int i = 0, j = 0; i < text.length(); i++) { 
      char c = text.charAt(i); 
      if (c < 'A' || c > 'Z') continue; 
      res += (char)((c - key.charAt(j) + 26) % 26 + 'A'); 
      j = ++j % key.length(); 
     } 
     return res; 
    } 
} 
1

This pos tは暗号解読のための【選択全体のコードが提供されるお手伝いを致します。これを使って暗号化コードを書くことができます

+0

このリンクは質問に答えるかもしれませんが、答えの本質的な部分をここに含めて参考にしてください。リンクされたページが変更された場合、リンクのみの回答は無効になります。 - [レビューから](/レビュー/低品質の投稿/ 19031471) – Lucifer

関連する問題