1. 程式人生 > >資料庫密碼加密:MD5加密

資料庫密碼加密:MD5加密

什麼是資料庫加密

資料庫加密系統是一款基於透明加密技術的資料庫防洩漏系統,該產品能夠實現對資料庫中的敏感資料加密儲存、訪問控制增強、應用訪問安全、安全審計以及三權分立等功能。

資料庫加密的方式有6種方式:DES加密演算法、AES加密演算法、MD5加密演算法、RSA加密演算法、Base64加密演算法、SHAI加密演算法等。

MD5加密:

MD5的典型應用是對一段資訊(Message)產生資訊摘要(Message-Digest),以防止被篡改。比如,在UNIX下有很多軟體在下載的時候都有一個檔名相同,副檔名為.md5的檔案,在這個檔案中通常只有一行文字。

MD5的典型應用是對一段Message(位元組串)產生fingerprint(指紋),以防止被“篡改”。舉個例子,你將一段話寫在一個叫 readme.txt檔案中,並對這個readme.txt產生一個MD5的值並記錄在案,然後你可以傳播這個檔案給別人,別人如果修改了檔案中的任何內容,你對這個檔案重新計算MD5時就會發現(兩個MD5值不相同)。如果再有一個第三方的認證機構,用MD5還可以防止檔案作者的“抵賴”,這就是所謂的數字簽名應用。

MD5還廣泛用於作業系統的登陸認證上,如Unix、各類BSD系統登入密碼、數字簽名等諸多方。如在UNIX系統中使用者的密碼是以MD5(或其它類似的演算法)經Hash運算後儲存在檔案系統中。當用戶登入的時候,系統把使用者輸入的密碼進行MD5 Hash運算,然後再去和儲存在檔案系統中的MD5值進行比較,進而確定輸入的密碼是否正確。通過這樣的步驟,系統在並不知道使用者密碼的明碼的情況下就可以確定使用者登入系統的合法性。這可以避免使用者的密碼被具有系統管理員許可權的使用者知道。MD5將任意長度的“位元組串”對映為一個128bit的大整數,並且是通過該128bit反推原始字串是困難的,換句話說就是,即使你看到源程式和演算法描述,也無法將一個MD5的值變換回原始的字串,從數學原理上說,是因為原始的字串有無窮多個,這有點象不存在反函式的數學函式。所以,要遇到了md5密碼的問題,比較好的辦法是:你可以用這個系統中的md5()函式重新設一個密碼,如admin,把生成的一串密碼的Hash值覆蓋原來的Hash值就行了。

MD5具體事例:

首先是建立一個ajax資料夾,建立ajax的類,具體是:

/// <summary>
    /// Login 的摘要說明
    /// </summary>
    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(){}),集體如下:

<script type="text/javascript">
        $(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);
                        }
                    }
                });
            });
        });
    </script>

接著就是在三層裡面新增一個MD5加密的類,名稱EncryptHelper,具體的程式碼:

public class EncryptHelper
    {
        /// <summary>
        /// MD5加密演算法
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        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();
            };
        }

接著然後在業務邏輯層的登入介面中呼叫建立的MD5加密的類,具體的程式碼為:

/// <summary>
        /// 根據賬號和密碼登入
        /// </summary>
        /// <param name="Account"></param>
        /// <param name="Password"></param>
        /// <returns></returns>
        public CurrenUser GetUserInfo(string Account, string Password)
        {
            //引用MD5加密
            Password = EncryptHelper.EncryptHelper.GetMD5Hash(Password);
            return db.GetUserInfo(Account, Password);
        }

MD5加密就是這些

相關推薦

資料庫密碼加密MD5加密

什麼是資料庫加密 資料庫加密系統是一款基於透明加密技術的資料庫防洩漏系統,該產品能夠實現對資料庫中的敏感資料加密儲存、訪問控制增強、應用訪問安全、安全審計以及三權分立等功能。 資料庫加密的方式有6種方式:DES加密演算法、AES加密演算法、MD5加密演算法、RSA加密演算

第四十二章MD5加密技術

MD5加密技術 MD5是雜湊演算法中的一種,加密強度較為適中。雜湊演算法有下面幾個特點: ①不可逆,即使在已知加密過程的前提下,無法從密文反推回明文。 ②輸出資料的長度固定。例如:MD5加密輸出資料的長度固定就是32個字元。 ③輸入資料不變,輸出資料不變;輸入資料變,輸出資料都會跟著變。

C#幫助類MD5加密

security ati encrypt md5 str int file gin code 1 /// <summary> 2 /// MD5加密 3 /// </summary> 4 public cla

js的常見的三種密碼加密方式-MD5加密、Base64加密和解密和sha1加密詳解總結

寫在前面寫前端的時候,很多的時候是避免不了註冊這一關的,但是一般的註冊是沒有任何的難度的,無非就是一些簡單的獲取使用者輸入的資料,然後進行簡單的校驗以後呼叫介面,將資料傳送到後端,完成一個簡單的註冊的流程,那麼一般來說,密碼是不做加密的。但是也有一些資料庫裡面存放的是加密後的

JavaScriptMD5加密

MD5加密html演示程式: <html> <head> <script language='javascript' src='md5.js'></script><!--引入MD5加密--> <script

密碼RSA加密演算法詳解

概述  本文旨在說明RSA加密演算法的原理及實現,而其相關的數學部分的證明則不是本文內容。版權說明著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。發表日期: 2016年2月29日來源:CSDNRSA簡介  1977年,三位數學家Rivest、Shamir

PostgreSQL用戶密碼如何通過md5加密存儲,是否加了salt

加密 stat util valid num created 創建 aps string 一、PG用戶的密碼如何通過md5加密,並且是否加了salt?本文將從源碼角度跟蹤分析。 PG用戶通過md5加密時,加了salt,而這個salt是用戶名字符串。 二、源碼分析 Creat

md5-js加密 JS-MD5加密

JS-MD5加密/html頁面使用   大家都知道,傳輸明文資訊很不安全,尤其像密碼、卡號等這些敏感私密的資訊,更不能暴露出去。在這裡給大家介紹一種在前端JS中的MD5加密演算法(因為要匹配的後臺資料是MD5加密後的字串,所以可以在JS中也用MD5加密。MD5是不能解密的加

如何生成安全的密碼 HashMD5, SHA, PBKDF2, BCrypt 示例

密碼 Hash 值的產生是將使用者所提供的密碼通過使用一定的演算法計算後得到的加密字元序列。在 Java 中提供很多被證明能有效保證密碼安全的 Hash 演算法實現,我將在這篇文章中討論其中的部分演算法。 需要注意的是,一旦生成密碼的 Hash 值並存儲在資料庫中後,你將不可能再把它轉換回密碼明

Android資料加密MD5加密

前言:       專案中無論是密碼的儲存或者說判斷檔案是否是同一檔案,都會用到MD5演算法,今天來總結一下MD5加密演算法。 什麼是MD5加密?      MD5英文全稱“Message-Digest Algorithm 5”,翻譯過來是“訊息摘要演算法5”,由MD2、MD3、MD4演變過來的,是一種

AES加密MD5加密

AES加密 private static string AES_KEY = "80f4kwSR45gY4rPU6YWxnIbqKT87lF93"; //傳入加密方法中 private static

Android安全加密對稱加密

Android安全加密專題文章索引 一、凱撒密碼 1. 概述 凱撒密碼作為一種最為古老的對稱加密體制,在古羅馬的時候都已經很流行,他的基本思想是:通過把字母移動一定的位數來實現加密和解密。明文中的所有字母都在字母表上向後(或向前)按照一個固定數

安卓中的對稱加密,非對稱加密MD5加密的演算法

轉自:http://blog.csdn.net/fengkaungdewoniu/article/details/52846025 安卓中使用的加密演算法可以說有三種:對稱加密、非對稱加密,及MD5加密。 對稱加密: 對稱加密又稱作私鑰加密。(舉例:家裡大門開門

Shiro許可權控制 ---base64加密MD5加密

在Java中也有MD5加密,現在咱們講的是Shiro許可權控制框架中自帶的加密方式,有base64加密、MD5加密 <span style="font-size:18px;">packa

信息安全-加密RAS 加密

ras rsa .com 方法 ima hit 加密 十進制 col ylbtech-信息安全-加密:RAS 加密 1.返回頂部 1、 RSA 是不對稱的加密(加密密鑰和解密密鑰不同 其中 一個為公鑰,一

JAVA 資料庫密碼加密MD5

文章出處:http://xxiao0359.blog.163.com/blog/static/979413752010109045701/ import java.security.MessageDigest; public class Password&nbs

MYSQL資料庫裡面的所有密碼批量MD5加密

如果你的欄位夠長度的話: UPDATE users SET password = MD5(password); 如果長度不夠,可以先增加長度後再做,或者多建一列,完成後刪除原來的列!(如passwd) UPDATE users SET passwd = MD5(passwo

簡單的md5加密資料及密碼複雜度校驗

資料庫通常需要對密碼進行加密處理,如果已經使用了明文,則需要進行加密遷移。 1. 明文資料庫 CREATE DATABASE `test` ; USE `test`; insert into `t_a`(`id`,`name`,`password`) values (1,'123','q

安全不安全003C#實現MD5加密演算法

MD5是一種資訊-摘要演算法,一種單向函式演算法(也就是HASH演算法)。將不同輸入長度的資訊進行雜湊計算,得到固定長度的輸出。它的主要特點是,不可逆 和唯一性。即不能由結果計算出輸入值;且不同的輸入值計算得到的固定長度輸出是唯一的。 目前使用的面向物件程式語言中,基本都有類庫實現好的MD5方法

PYTHON自動化Day6-函式多個返回值和匿名函式、列表生成式,三元運算子,os模組,sys模組,時間模組,字典排序,資料庫操作,加密md5

一.函式多個返回值和匿名函式 #函式返回多個值,用一個變數接收 def say(): num1=1 num2=2 num3=3 return num1,num2,num3 res=say() print(res) #打印出來是元組。 函式如果返回多個值的話,會把返回的