Androidセキュリティ暗号化:メッセージ要約Message Digest詳細


Androidセキュリティ暗号化のテーマ記事インデックス
  • Androidセキュリティ暗号化:対称暗号化
  • Androidセキュリティ暗号化:非対称暗号化
  • Androidセキュリティ暗号化:メッセージ要約Message Digest
  • Androidセキュリティ暗号化:デジタル署名とデジタル証明書
  • Androidセキュリティ暗号化:Httpsプログラミング
  • 以上はすべての内容を学びました。対称暗号化、非対称暗号化、メッセージ要約、デジタル署名などの知識はすべてデジタル証明書の動作原理を理解するために予備知識として使われています。デジタル証明書は暗号学における究極の武器であり、人類が数千年の歴史を総括した知恵の結晶であり、デジタル証明書の動作原理を理解してからこそ、Httpsプロトコルの安全通信機構を理解することができる。最終的にSSL開発の過程でうまくいくことができます。
    また、対称暗号化とメッセージ要約の2つの知識点は、単独で使用することができる。
    知識点の連絡先:
    デジタル証明書は以上の勉強のすべての知識を使っています。
  • 対称暗号化と非対称暗号化を組み合わせた秘密鍵交換が実現され、その後、通信双方はこの秘密鍵を用いて対称暗号化通信を行う。
  • メッセージの要約は、非対称暗号化とともにデジタル署名を実施し、ルート証明書機関が対象証明書に署名し、検証するとき、ルート証明書は公開鍵で検証される。検証が成功したら、証明書は信頼されているということです。
  • Keytoolツールは証明書を作成し、その後、ルート証明書機関に認証された後、直接に署名証明書を使用して、証明書のRFCフォーマット情報などを出力することができます。
  • デジタル署名技術は、アイデンティティ認証とデータ完全性保証を実現する。
  • 暗号化技術はデータの機密性を保証し、メッセージ要約アルゴリズムはデータの完全性を保証し、対称暗号化はデータ処理の信頼性を保証し、デジタル署名技術は動作の否定できない性を保証する。
  • 以上の内容の勉強を通して、私達は以下の知識点を身につけます。
  • 基礎知識:ビット、バイト、文字、文字コード、進数変換、io
  • は、実際の開発で対称暗号化をどうやって解決するかを知っています。
  • は、対称暗号化、非対称暗号化、メッセージ要約、デジタル署名、デジタル証明書が、どのような問題を解決するために作られたかを知る
  • である。
  • SSL通信プロセスを理解する
  • 実際に開発した中で、どのようにHttpsのインターフェースを要求しますか?
  • 1.一般的なアルゴリズム
    MD 5、SHA、CRCなど
    2.使用シーン
  • ユーザパスワードをmd 5で暗号化してデータベースに保存する
  • ソフトウェアダウンロードステーションは、情報要約を用いてファイルの指紋を計算し、改竄を防止する。
  • デジタル署名(後ろの知識点)
  • 百度雲、360網盤などの雲盤の妙伝機能はshar 1値
  • です。
  • EclipseとAndroid Studio開発ツールは、shar 1の値からv 4を判断し、v 7パケットが競合しているかどうか
  • を判断する。
  • 銀行のパスワードはMD 5暗号化だそうです。
  • 例えば、ソフトウェアダウンロード局のデータ指紋:http://dev.mysql.com/downloads/installer/

    3.使用手順
    
    //    :MD5、SHA、CRC
    MessageDigest digest = MessageDigest.getInstance("MD5");
    byte[] result = digest.digest(content.getBytes());
    //              16          
    String hex = Hex.encode(result);
    //MD5    16   (128     )、   16         32    
    //SHA    20   (160     )、   16         40    
    System.out.println(hex);
    要約後の結果は固定長であり、データの大きさにかかわらず、1バイトまたはGファイルであっても、要約後の結果は固定長である。
    よく聞きますが、MD 5ダイジェストの結果は何位ですか?16位という人もいれば、128位と32位という人もいます。どれぐらいの長さですか?16桁はバイト数、128ビットはビットビットビットを指し、32ビットは16進数に変換されて展示されている文字の桁数です。
    4.デジタルダイジェストの原理
    
    //    
    MessageDigest digest = MessageDigest.getInstance("MD5");
    digest.update(key.getBytes());
    byte[] bytes = digest.digest(key.getBytes());
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < bytes.length; i++) {
     String hex = Integer.toHexString(bytes[i]&0xff);
     if (hex.length() == 1){
     sb.append("0");
     }
     sb.append(hex);
    }
    String hexstring = sb.toString();