ホームページ  >  記事  >  バックエンド開発  >  ASP.NET データベースのパスワード: MD5 暗号化アルゴリズムの詳細な説明

ASP.NET データベースのパスワード: MD5 暗号化アルゴリズムの詳細な説明

Hello World!
Hello World!オリジナル
2020-04-28 17:27:032671ブラウズ

ソフトウェア開発のプロセスでは、ユーザーのパスワードなどの重要な情報の保存が必然的に発生します。ほとんどの場合、ユーザーのパスワードはデータベースに保存されます。機密保持措置を講じずに平文で直接保存すると、ユーザーの個人情報の漏洩が容易に発生し、企業やユーザーに予期せぬ損失が発生します。

現在、MD53DESAESSHA1# など、一般的に使用されているパスワード暗号化ストレージ アルゴリズムが多数あります。 # #待って。

今日は主にMD5暗号化アルゴリズムを紹介します。

ASP.NET データベースのパスワード: MD5 暗号化アルゴリズムの詳細な説明

MD5 アルゴリズムとは

MD5 は、デジタル署名の生成に使用される単一キー ハッシュ アルゴリズムで、512 ビットを使用します。入力情報の処理にはグループが使用され、各グループは 16 個の 32 ビット サブグループに分割され、一連の処理の後、アルゴリズムの出力は 4 つの 32 ビット グループに連結されて 128 ビットのハッシュ値が生成されます。 。

ASP.NET を使用してパスワード フィールド値を暗号化します。コードは次のとおりです:

using System.Security.Cryptograhoy;//引入MD5加密命名空间
public string GetMD5(string strPwd)
{
    //将要加密的字符串加上前缀与后缀后再加密
    string cl = DateTime.Now.Month + strPwd + DateTime.Now.Day;
    string pwd = "";
    //实例化一个MD5对象
    MD5 md5 = MD5.Create();
    //加密后是一个字节类型的数组,要注意编码UTF8/Unicode等的选择
    byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(cl));
    //翻转生成的MD5码
    s.Reverse();
    //通过循环,将字节类型的数组转换为字符串
    //只取MD5码的一部分,这样恶意访问者无法知道取的是哪几位
    for(int i = 3;i < s.Length-1; i++)
    {
        //将得到的字符串使用十六进制类型格式化。格式化后的字符是小写的字母,如果使用大写(X),则格式化后的字符是大写字母
        //进一步对生成的MD5码做一些改造
        pwd = pwd + (s[i] < 198 ? s[i] + 28 : s[i]).ToString("X");
    }
    return pwd;
}

Note

If単に MD5 を使用するだけです。アルゴリズムによって生成されたハッシュ値は解読される可能性があります。したがって、実際の開発プロセスでは、MD5 アルゴリズムとソルト アルゴリズムを組み合わせて使用​​して、解読できない暗号化文字列を生成する必要があります。

以上がASP.NET データベースのパスワード: MD5 暗号化アルゴリズムの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。