データベース暗号化:MD 5暗号化


データベース暗号化とは
データベース暗号化システムは透明暗号化技術に基づくデータベース漏洩防止システムであり、この製品はデータベース中の機密データの暗号化記憶、アクセス制御の強化、応用アクセス安全、安全監査及び三権分立などの機能を実現することができる.
データベース暗号化の方式は、DES暗号化アルゴリズム、AES暗号化アルゴリズム、MD 5暗号化アルゴリズム、RSA暗号化アルゴリズム、Base 64暗号化アルゴリズム、SHAI暗号化アルゴリズムなど6つあります.
MD 5暗号化:
MD 5の典型的な応用は、改ざんを防止するために、情報(Message)の要約(Message-Digest)を生成することである.例えば、UNIXではダウンロード時に同じファイル名を持つソフトウェアが多く、ファイル拡張子は.md 5のファイルは、通常1行のテキストしかありません.
MD 5の典型的な応用は、「改ざん」を防止するために、1つのMessage(バイト列)に対してfingerprint(指紋)を生成することである.例を挙げてreadmeという言葉に書きますtxtファイルで、このreadme.txtはMD 5の値を生成して記録し、他の人にこのファイルを伝播することができます.他の人がファイルの内容を変更した場合、このファイルに対してMD 5を再計算すると(2つのMD 5の値が違います).もう1つのサードパーティの認証機関があれば、MD 5を使ってファイル作成者の「言い逃れ」を防ぐこともできる、いわゆるデジタル署名アプリケーションです.
MD 5は、Unix、各種BSDシステムのログインパスワード、デジタル署名など、オペレーティングシステムのログイン認証にも広く用いられている.UNIXシステムにおけるユーザのパスワードは、MD 5(または他の類似のアルゴリズム)がHash演算されてファイルシステムに格納される.ユーザがログインすると,ユーザが入力したパスワードをMD 5 Hash演算し,ファイルシステムに保存されているMD 5値と比較し,入力したパスワードが正しいか否かを判定する.このようなステップにより、システムは、ユーザパスワードの符号を知らない場合に、ユーザ登録システムの正当性を決定することができる.これにより、ユーザのパスワードがシステム管理者権限を持つユーザに知られないようにすることができる.MD 5は任意の長さの「バイト列」を128 bitの大きな整数にマッピングし、この128 bitで元の文字列を反転させることは困難である.言い換えれば、ソースプログラムやアルゴリズムの記述を見ても、MD 5の値を元の文字列に変換することはできない.数学原理的には、元の文字列が無限に複数あるため、反関数のない数学関数に似ている.だから、md 5パスワードの問題に直面するには、このシステムのmd 5()関数でadminのようにパスワードを再設定し、生成された一連のパスワードのHash値を元のHash値に上書きすればいいのが良い方法です.
MD 5の具体例:
まずajaxフォルダを作成し、ajaxのクラスを作成します.具体的には:
/// 
    /// Login      
    /// 
    public class Login : IHttpHandler,System.Web.SessionState.IReadOnlySessionState
    {

        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            //        
            string account = context.Request.QueryString["Account"];
            string password = context.Request.QueryString["Password"];
            //context.Response.Write($"   :{account},  :{password}");

            UserBLL man = new UserBLL();
            CurrenUser user = man.GetUserInfo(account,password);
            if (user!=null)
            {
               context.Session["userInfo"] = user.UserID;
                context.Response.Write("ok");
            }
            else
            {
                context.Response.Write("            ,     !");
            }
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }

後でログインするインタフェースに$(funtion(){})を追加します.集団は次のようになります.

        $(function ()
        {
            $("#btn_login").click(function ()
            {
                var account = $("txt_name").val();
                var password = $("txt_password").val();

                $.ajax({
                    type: "POST",
                    url: "/ashx/Login.ashx",
                    data: { Account: account, Password: password },
                    success: function (msg) {
                        if (msg == "ok") {
                            location.href("UserInfoXiangQing.aspx");
                        }
                        else {
                            alert(msg);
                        }
                    }
                });
            });
        });
    

次に、MD 5暗号化クラス、名前EncryptHelper、具体的なコードを3層に追加します.
public class EncryptHelper
    {
        /// 
        /// MD5    
        /// 
        /// 
        /// 
        public static string GetMD5Hash(string str)
        {
            using (MD5 md5Obj = MD5.Create())
            {
                //   MD5   
                // MD5 md5Obj = new MD5CryptoServiceProvider();
                byte[] bytes = Encoding.UTF8.GetBytes(str);
                byte[] md5byte = md5Obj.ComputeHash(bytes);
                StringBuilder bulider = new StringBuilder();
                for (int i = 0; i < md5byte.Length; i++)
                {
                    bulider.Append(md5byte[i].ToString("X2"));
                }
                return bulider.ToString();
            };
        }

次に、作成したMD 5暗号化クラスを、ビジネスロジック層のログインインタフェースで呼び出します.具体的なコードは、次のとおりです.
/// 
        ///          
        /// 
        /// 
        /// 
        /// 
        public CurrenUser GetUserInfo(string Account, string Password)
        {
            //  MD5  
            Password = EncryptHelper.EncryptHelper.GetMD5Hash(Password);
            return db.GetUserInfo(Account, Password);
        }

MD 5暗号化はこれらです