Java で 3DES を使用してテキストを暗号化および復号化する方法
Java で Triple DES (3DES) アルゴリズムを使用してテキストを暗号化および復号化する場合、プロセスの正確性を検証することが重要です。復号化されたテキストが元の文字列と一致しないという問題が発生した場合は、コード内の軽微なエラーが原因である可能性があります。暗号化と復号化の両方が期待どおりに機能することを保証する簡潔なソリューションを次に示します。
以下のコードは、キーの生成にメッセージ ダイジェスト 5 (MD5) を使用し、特定のアルゴリズム パラメーターで Cipher オブジェクトを初期化します。
public static void main(String[] args) throws Exception { String text = "kyle boon"; byte[] codedtext = new TripleDESTest().encrypt(text); String decodedtext = new TripleDESTest().decrypt(codedtext); System.out.println(decodedtext); // Prints "kyle boon" }
public byte[] encrypt(String message) throws Exception { // Generate key bytes using MD5 digest MessageDigest md = MessageDigest.getInstance("md5"); byte[] digestOfPassword = md.digest("HG58YZ3CR9".getBytes("utf-8")); byte[] keyBytes = Arrays.copyOf(digestOfPassword, 24); for (int j = 0, k = 16; j < 8;) { keyBytes[k++] = keyBytes[j++]; } // Create SecretKey and IvParameterSpec SecretKey key = new SecretKeySpec(keyBytes, "DESede"); IvParameterSpec iv = new IvParameterSpec(new byte[8]); // Initialize Cipher object Cipher cipher = Cipher.getInstance("DESede/CBC/PKCS5Padding"); cipher.init(Cipher.ENCRYPT_MODE, key, iv); // Encrypt plain text byte[] plainTextBytes = message.getBytes("utf-8"); return cipher.doFinal(plainTextBytes); }
public String decrypt(byte[] message) throws Exception { // Generate key bytes using MD5 digest MessageDigest md = MessageDigest.getInstance("md5"); byte[] digestOfPassword = md.digest("HG58YZ3CR9".getBytes("utf-8")); byte[] keyBytes = Arrays.copyOf(digestOfPassword, 24); for (int j = 0, k = 16; j < 8;) { keyBytes[k++] = keyBytes[j++]; } // Create SecretKey and IvParameterSpec SecretKey key = new SecretKeySpec(keyBytes, "DESede"); IvParameterSpec iv = new IvParameterSpec(new byte[8]); // Initialize Cipher object Cipher decipher = Cipher.getInstance("DESede/CBC/PKCS5Padding"); decipher.init(Cipher.DECRYPT_MODE, key, iv); // Decrypt cipher text return new String(decipher.doFinal(message), "UTF-8"); }
暗号化に使用されたキーが復号化に使用されたキーと一致することを確認してください。入力文字列を元の文字列と比較して、入力文字列が正確に暗号化および復号化されていることを確認します。これらのガイドラインに従えば、Java で 3DES を使用してテキストを正常に暗号化および復号化できるはずです。
以上がJava で 3DES を使用して暗号化と復号化を確実に成功させるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。