データベース暗号化:MD 5暗号化
4708 ワード
データベース暗号化とは
データベース暗号化システムは透明暗号化技術に基づくデータベース漏洩防止システムであり、この製品はデータベース中の機密データの暗号化記憶、アクセス制御の強化、応用アクセス安全、安全監査及び三権分立などの機能を実現することができる.
データベース暗号化の方式は、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のクラスを作成します.具体的には:
後でログインするインタフェースに$(funtion(){})を追加します.集団は次のようになります.
次に、MD 5暗号化クラス、名前EncryptHelper、具体的なコードを3層に追加します.
次に、作成したMD 5暗号化クラスを、ビジネスロジック層のログインインタフェースで呼び出します.具体的なコードは、次のとおりです.
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暗号化はこれらです