ホームページ > Java > &#&チュートリアル > Java で OpenSSL AES-CBC 暗号化ファイルを復号化する方法

Java で OpenSSL AES-CBC 暗号化ファイルを復号化する方法

Linda Hamilton
リリース: 2024-12-14 07:46:11
オリジナル
587 人が閲覧しました

How to Decrypt OpenSSL AES-CBC Encrypted Files in Java?

CBC モードの OpenSSL の AES で暗号化された Java でのファイルの復号化

OpenSSL は、ソルトベースのパスワード キー導出方法と Base64 MIME を使用してファイルを暗号化しますエンコーディング。 Java でこのようなファイルを復号化するには、次の手順に従ってください:

  1. ソルトとキーの生成:

    salt = random(8)
    keyAndIV = EVP_BytesToKey(password, salt, 48)
    key = keyAndIV[0..31]
    iv = keyAndIV[32..47]
    ログイン後にコピー
  2. 塩を抽出し、暗号文:

    base64 エンコードされたファイルから:

    • ソルト: バイト 8-15
    • 暗号文: バイト 16以降
  3. 復号化:

    aesCBC.init(Cipher.DECRYPT_MODE, key, iv)
    plaintext = aesCBC.doFinal(ciphertext)
    ログイン後にコピー
  4. OpenSSL EVP_BytesToKey実装:

    public static byte[][] EVP_BytesToKey(int key_len, int iv_len, MessageDigest md,
            byte[] salt, byte[] data, int count) {
        // ...
    }
    ログイン後にコピー
  5. 主な復号化方法:

    public static void main(String[] args) {
        // ...
    }
    ログイン後にコピー

追加注:

  • 文字セットとして ASCII を一貫して使用します。
  • OpenSSL と Java の両方でダイジェスト アルゴリズム (MD5 または SHA-256) を指定します。
  • セキュリティを向上させるために PBKDF2 を使用してください。
  • 次の期間で OpenSSL のダイジェスト アルゴリズムが変更されることに注意してください。バージョン。

以上がJava で OpenSSL AES-CBC 暗号化ファイルを復号化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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