[ad_1]
AES 256 キーとともに暗号文と RSA 秘密キー (暗号化された形式) を持っているシナリオがあります。 私の懸念は、最初にAES 256キーを使用してRSA秘密キーを復号化するJavaScriptコードが必要であることです。初期化ベクトル(ランダムに生成された16ビット)を持っていません。 復号された RSA 秘密キーは、メインの暗号文を復号するために使用されます。
以下の Ruby コードを使用してデータを復号化できますが、JavaScript でも同じことを実現したいと考えています。
ルビコード:
require 'openssl' require 'base64' private_key_path = 'C:\Users\User\Documents\Ruby\private3.pem' passphrase = 'xxxxxxxxxxxxxxxxxx' begin private_key = OpenSSL::pKey::RSA.new(File.read(private_key_path), passphrase) encrypted_ssn = File.read('C:\Users\User\Documents\RubyC=\input_case.txt') decrypted_ssn = private_key.private_decrypt(Base64.decode64(encrypted_ssn)) puts "Decrypted SSN: #{decrypted_ssn}" rescue Errno::ENOENT => e puts "Error: #{e.message}. Make sure the file paths are correct." rescue OpenSSL::pKey::RSAError => e puts "Error: #{e.message}. Check if the private key or passphrase is correct." end
キーフォーマット
(入力ケース)
暗号文形式: rnIlnXweYGYX107Lz7nAIYSASUpZsZoAAUS9zueA=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
秘密鍵:
—–RSA 秘密鍵の開始—–
Proc-Type: 4,ENCRYPTED
DEK 情報: AES-256-CBC、A7AF3A76C321D9FFFFFFFFFFFFFF
SOj8/nY3qkQKKcpjIXxCSIJey8LVuvYLMeZL+8BRrdnxM1RTNAMLeO3Gd7hD7PLJ
oBRsLmynXYVwIM6l0G1B+KBjXjb1K9iwnyrGFSbA3Fx8LnNaMHnfW+A3+bUUiBt0XXXXXXXXXXXXXX…
—–RSA 秘密鍵の終了—–
私が試したこと:
このコードを試してみると、「初期化ベクトルが間違っていますか?」というエラーが発生しました。 この問題の解決策とは何ですか?
解決策 1
基本的にはしないでください。
Javascript はクライアント上で実行され、Chrome で F12 を押すことができる人であれば誰でも表示できます。 これは、キーなども表示できることを意味します。これでは、暗号化の本質が無効になります。
さらに、JavaScript はクライアントまたはサーバー上のファイル システムにアクセスできないため、JavaScript が復号化するためにアクセスできるようにするには、暗号化されたメッセージ全体をクライアントのブラウザに転送する必要があります。
アイデア全体を再考する必要があると思います。これはおそらくあなたが思い描いている方法では不可能でしょう。
[ad_2]
コメント