ホームページ > Java > &#&チュートリアル > Java で 3DES を使用して暗号化と復号化を確実に成功させるにはどうすればよいですか?

Java で 3DES を使用して暗号化と復号化を確実に成功させるにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-16 05:50:02
オリジナル
389 人が閲覧しました

How to Ensure Successful Encryption and Decryption with 3DES in Java?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート