小白C#表單系列-09.SHA系列加密

來源:互聯網
上載者:User

標籤:des   style   blog   http   io   color   ar   os   sp   

SHA系列加密,SHA512安全是安全,但位元太長了,很少有人用它加密密碼,下面我就簡單介紹一下SHA和一些變種加密(SHA512也會用進去的) 程式跟國際化接軌,都是用的UTF-8編碼格式 (如果有比我還菜的鳥寫出相同的加密方式得到的密文不同,如果要質疑的話,先把編碼看一下,不同編碼產生密文是不同的) 提供另一種思路(下期會講):在多重加密的過程中反覆變化編碼。。。自己想象去吧~ 這個是SHA-1的加密寫法,和MD5一樣的 也許有人會問,那個for迴圈怎麼沒了?我這邊用的是官方提供的方法,for迴圈那個一般只有在對內部位元組進行變形或者剛學才用的 如果你不知道我說的是什麼的話,,,,看一下這個日記,有詳解:http://user.qzone.qq.com/1054186320/blog/1407540646這個是本期練手軟體:http://pan.baidu.com/s/1sjjWqpZ     public string GetSHAOne(string input)//SHA-1加密{    //創    SHA1 shaOne = SHA1.Create();     //變    byte[] shaOneBuffer = shaOne.ComputeHash(Encoding.UTF8.GetBytes(input));     //關    shaOne.Clear();     return BitConverter.ToString(shaOneBuffer).Replace("-", "").ToLower();//另一種簡單的方法}   那SHA256怎麼用呢?。。。簡單,把SHA1換成SHA256就行了,代碼如下: public string GetSHAX(string input){    //創    SHA256 shaX = SHA256.Create();     //變    byte[] shaXBuffer = shaX.ComputeHash(Encoding.UTF8.GetBytes(input));     //關    shaX.Clear();     return BitConverter.ToString(shaXBuffer).Replace("-", "").ToLower();//另一種簡單的方法} 好了,下面重點介紹一下我最新加密成果:DNTDBT加密(dnt大變態) 其實也不是我自己創出的加密了,就是把一下常用的加密我自己“人性化”的加上自己的思路,小小的變化一下,然後再重鑄了一下 也可以稱為:SHA系列綜合變異 【用到了SHA512(目前最安全的加密)】~編碼格式為 UTF-8 先談一下思路:明文——>SHA512——>Base64——>BTMD5——>BYSHA——>SHA512——>Base64——>BYSHA(40位)【這個叫加密順序還是有一些玄機的,具體自己揣測哦~】 建議站長用這種最複雜的加密方式來錄入密碼~我把代碼簡單最佳化一下,你可以再最佳化(最佳化角度:從節省資源開始) 我這邊主要是給小白看的不能最佳化過頭,不然他們肯定看不懂 代碼貼一下: public string DNTDBT(string input){    //創    SHA512 shaX = SHA512.Create();     //變+關    string newInput = GetBYSHA(GetBTMD5(GetBase64(shaX.ComputeHash(Encoding.UTF8.GetBytes(input)))));            string strShax = GetBase64(shaX.ComputeHash(Encoding.UTF8.GetBytes(newInput)));            shaX.Clear();//釋放一系列加密所佔的資源            return GetBYSHA(strShax);} 是不是感覺很簡單呢?咳咳,,下面才是真正的海量代碼,上面只是一個方法調用多個方法而已~~  //MD5小變異public string GetSXMD5(string input){    //創    MD5 md5 = MD5.Create();     //轉    byte[] md5buffer = md5.ComputeHash(Encoding.UTF8.GetBytes(input));     StringBuilder sbMd5 = new StringBuilder();        for (int i = md5buffer.Length - 1; i >= 0; i--)    {        sbMd5.Append(md5buffer[i].ToString("x2"));    }     //關    md5.Clear();     return sbMd5.ToString();} //SHA-1加密public string GetSHAOne(string input){    //創    SHA1 shaOne = SHA1.Create();     //變    byte[] shaOneBuffer = shaOne.ComputeHash(Encoding.UTF8.GetBytes(input));     //關    shaOne.Clear();     return BitConverter.ToString(shaOneBuffer).Replace("-", "").ToLower();//另一種簡單的方法(也可以用上面遍曆來做)} //MD5再變異--一段處理後再變成MD5(保證位元一定)public string GetBTMD5(string input){    //創    MD5 md5 = MD5.Create();     //變    byte[] md5Buffer = md5.ComputeHash(Encoding.UTF8.GetBytes(input));     ////變異開始    StringBuilder sb = new StringBuilder();        for (int i = md5Buffer.Length - 1; i >= 0; i--)    {        sb.Append(((int.Parse(md5Buffer[i].ToString())) - 1).ToString("x2"));    }     //關    md5.Clear();     //重新加固    return GetSXMD5(sb.ToString());} //Base64加密(之所以選他是因為他的地址中有各種特殊符號,多重破解很艱難的)public string GetBase64(byte[] inputBuffer){    return Convert.ToBase64String(inputBuffer);} //SHA-1小變異public string GetBYSHA(string input){    //創    SHA1 shaOne = SHA1.Create();     //變    byte[] shaOneBuffer = shaOne.ComputeHash(Encoding.UTF8.GetBytes(input));     string newinput = GetBase64(shaOneBuffer);     byte[] shaNewBuffer = shaOne.ComputeHash(Encoding.UTF8.GetBytes(newinput));     //關    shaOne.Clear();     return BitConverter.ToString(shaNewBuffer).Replace("-", "").ToLower();} 咳咳,看到這說明你有還沒有被嚇到,或者說你直接一目千行了,好吧,逆天有個習慣,講個技術點就喜歡發個大絕招,我也編了個軟體給你們參考 源碼如下:http://pan.baidu.com/s/1c0o03QS 如果你Base64加密不太懂的話,就看這篇文章:http://user.qzone.qq.com/1054186320/blog/1409210604 如果你MD5系列還是不太懂的話,就看這篇文章:http://user.qzone.qq.com/1054186320/blog/1407540646如果你表徵圖布局之類的不會的話,就看這篇文章:http://user.qzone.qq.com/1054186320/blog/1396659636 
如果你C#學的還是有點那個啥的話,送你點資源:http://user.qzone.qq.com/1054186320/blog/1404357056 淡淡的飄過~下次會弄個更複雜的加密~先閃~~~   


本期推薦:   CodeSmith Generator 7.0.2                                                                               下一期:打造萬能圖片轉換器

小白C#表單系列-09.SHA系列加密

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.