C#、Golang、Python、Java(Android)間のDes、Rsa加復号互通シリーズの前言
2451 ワード
前言
最近のプロジェクトは1つのインタフェースを書く必要があり、2つのパラメータを返す必要があります.1つのパラメータはRsa非対称暗号化を使用し、対称暗号化用の鍵を復号し、もう1つのパラメータはDesを使用して対称暗号化を行います.機能は難しくありませんが、多言語間で対称、非対称暗号化の相互接続を実現するには、確かに力がかかり、記録すべきだと思います.注意:相互接続、すなわち言語Aが暗号化されてBase 64形式の暗号文が生成されると、言語Bで復号されます. C#、Golang、Python、Java(Android)間のDes、Rsa加復号互通シリーズの前言 C#、Golang、Python、Java(Android)間のDes、Rsa加復号互通シリーズのC# C#、Golang、Python、Java(Android)間Des、Rsa加復号互通シリーズのGolang C#、Golang、Python、Java(Android)間のDes、Rsa加復号互通シリーズのPython C#、Golang、Python、Java(Android)間Des、Rsaプラス復号相互接続シリーズのJava(Android) 対称暗号化Des
Des対称暗号化を実現するには、多言語の相互接続には以下の点に注意する必要があります.文字符号化統一UTF-8 使用暗号モードはCBC を統一的に使用する.充填方式統一使用PKCS 5 Padding 非対称暗号化Rsa
Rsa非対称暗号化を実現するには、多言語の相互接続には以下の点に注意する必要があります.文字符号化統一UTF-8 使用秘密鍵フォーマットPkcs 1およびPkcs 8に注意し、必要に応じて を選択する.充填方式はRSA/ECB/PCCS 1 Padding に統一する.
このシリーズでは、各言語のツールクラスごとに鍵ペアを生成することができますが、ここではOpenSSLを使用して鍵ペアを生成する方法を記録し、各言語でOpenSSL生成鍵ペアを使用して暗号化、復号化、署名、チェックを行うことができます.ダウンロード、 インストール秘密鍵(pkcs 1)(従来の秘密鍵フォーマット) を生成する.公開鍵 を生成する. pkcs 1形式の秘密鍵をpkcs 8形式、すなわちJava利用可能な秘密鍵 に変換する. pkcs 8フォーマットの秘密鍵をpkcs 1フォーマット(このステップは必要ない) に変換する.既存の秘密鍵に基づいてrsaCertReq.csrを生成する.このファイルは証明書を生成し、国などの情報を提示するために使用され、空にして、直接車に戻って を終了することができる.前のステップに従ってrsaCertReq.csrと秘密鍵を生成し、証明書を生成し、有効期間は10年 である. IOSに必要な公開鍵 を生成する. IOSに必要な秘密鍵を生成する過程で、パスワードを入力する必要があり、必ずパスワードを覚えて、後に を使う.
シリーズに含まれるすべてのエンジニアリングソース
C#エンジニアリングソースhttps://github.com/lhtzbj12/csharp_encryption Golangエンジニアリングソースhttps://github.com/lhtzbj12/go_encryption
最近のプロジェクトは1つのインタフェースを書く必要があり、2つのパラメータを返す必要があります.1つのパラメータはRsa非対称暗号化を使用し、対称暗号化用の鍵を復号し、もう1つのパラメータはDesを使用して対称暗号化を行います.機能は難しくありませんが、多言語間で対称、非対称暗号化の相互接続を実現するには、確かに力がかかり、記録すべきだと思います.注意:相互接続、すなわち言語Aが暗号化されてBase 64形式の暗号文が生成されると、言語Bで復号されます.
Des対称暗号化を実現するには、多言語の相互接続には以下の点に注意する必要があります.
Rsa非対称暗号化を実現するには、多言語の相互接続には以下の点に注意する必要があります.
このシリーズでは、各言語のツールクラスごとに鍵ペアを生成することができますが、ここではOpenSSLを使用して鍵ペアを生成する方法を記録し、各言語でOpenSSL生成鍵ペアを使用して暗号化、復号化、署名、チェックを行うことができます.
http://slproweb.com/products/Win32OpenSSL.html
openssl genrsa -out private_key.pem 1024
openssl rsa -in private_key.pem -pubout -out public_key.pem
//create pkcs8_private_key.pem For Java
openssl pkcs8 -topk8 -in private_key.pem -out pkcs8_private_key.pem -nocrypt
openssl rsa -in pkcs8_private_key.pem -out pkcs1_private_key.pem
openssl req -new -key private_key.pem -out rsaCertReq.csr
openssl x509 -req -days 3650 -in rsaCertReq.csr -signkey private_key.pem -out rsaCert.crt
openssl x509 -outform der -in rsaCert.crt -out public_key.der
openssl pkcs12 -export -out private_key.p12 -inkey private_key.pem -in rsaCert.crt
シリーズに含まれるすべてのエンジニアリングソース
C#エンジニアリングソースhttps://github.com/lhtzbj12/csharp_encryption Golangエンジニアリングソースhttps://github.com/lhtzbj12/go_encryption