php 自定義複雜MD5加密函數

本文章是先自己自定義複雜MD5加密函數對密碼進行加密,然後再由系統的md5加密程序進行加密,下面我來介紹一下實現方法。

雖然說md5的密文是有限的,不過其數量爲6.3340286662973277706162286946812e+49 ,如果對這個數字沒感覺,你可以想象一下一億的五次方再乘個幾千萬就差不多了。。。。。

以前接觸過不少程序(當菜鳥黑客的那段時光……),大部分程序加密方式都是“md5”,而且是純加密,本來這也沒有錯,以爲md5算法畢竟沒有被破解,但是隨著特征字符串的收集,使用純md5加密已經越來越危險。

自己寫程序一般習慣加上特征字符串再MD5,自以爲萬無一失,但是今天發現cmd5居然可以破解這種加密方式,當然前提是要知道特征字符串,雖然我的更爲複雜,不過出于防範心理,還是對加密函數進行了複雜化。

代碼如下
function md123($sstr)
{
$md_asc=”";
$mds=md5(“qwEqw”.$sstr.”2ddsdf”);
$mds=md5(“rtrTtyr”.$mds.”zcv34r”);
for($i=1;$i< strlen($mds);$i++){
$md_asc.=168/ord(substr($mds,$i,1));
}
return md5($md_asc);
}

這樣通過隨即字符串和ascii ,使密碼安全性得到進一步提高,在通過ord的時候,一個簡單的1已經被轉換成了一下字符:

1.73195876288662.94736842105261.66336633663373.1111

1111111113.23076923076923.16981132075471.731958762

88661.683.42857142857142.94736842105261.681.681.6470

5882352943.11111111111111.66336633663372.94736842

105263.42857142857141.66336633663373.1698113207547

3.16981132075473.11111111111111.69696969696971.681.7

1428571428573.16981132075471.71428571428573.294117

64705881.681.64705882352941.69696969696971.64705882

352946ccc2eceada95b64bc7f55c07c2a6af6

這樣再進行MD5加密,就安全了,如果這樣還被破解了,那就用面條上吊吧

更多相關文章
  • ios開發之在UIView上使用自定義曲線繪制複雜圖形貝塞爾曲線
    我們一起來看這篇Swift ios開發之在UIView上使用自定義曲線繪制複雜圖形(貝塞爾曲線)的例子,具體的看下面,以前有介紹過類是的教程了.有時我們需要繪制一個不規則路徑的圖形,裏面可能包含直線或者曲線,這時就可以使用 UIBezierPath 來實現. UIBezierPath類可以表示任何能 ...
  • 我們都知道一般情況利用css來定義Radio單選項和Checkbox複選框樣式是無效的,下面我來給大家介紹利用CSS定義Radio單選項和Checkbox複選框樣式,有需要了解的朋友可參考.完全使用css來實例 代碼
  • LINQ 提供了一條更常規的途徑即給.Net 添加一些可以應用于所有信息源的具有多種用途的語法查詢特性,本教程我們一講Linq to Xml讀取複雜xml和Linq to js使用這兩個知識點,希望大家能夠更加深入的理解Linq.Linq to Xml讀取複雜xml(帶命名空間)xml的操作方式有多 ...
  • 本文章來給大家介紹一個java中利用Comparator進行複雜對象Collection的排序,希望此文章能給您帶來幫助.需求場景描述:需要對一個Collection進行某種方式的排序.比如一個User對象的集合,我們需要按公司和姓名進行排序.User對象如下: 代碼如下 package com.g
  • PHPexcel生成複雜的報表表頭類例子
    PHPexcel是一款非常不錯的excel表格操作php插件了,我們通常用它來生成excel文檔或數據轉換並導入到mysql數據庫中,下面介紹的是PHPexcel生成複雜的報表表頭類例子以前一直有需求,能把Execl裏面的數據導入數據庫,並且把數據庫裏面的數據導出到Execl中. 代碼如下 requ ...
  • 本文章來爲各位詳細的介紹一篇關于Java 接口常量反模式及定義 Java 常量的教程的例子,希望例子能夠對各位同學帶來有效的幫助,具體如下.初學 Java 的人很不經意間就會把常量定義在接口中,大概唯一的理由是接口不能實例化,而使用接口中定義的常量也是不用附著在實例上的.這主要還是 JDK 本身給我 ...
  • 關于php array_splice的用法以前有講過了,今天主要是詳細的講一下這個函數在應用中的一些詳細的具體的情況,有需要的朋友可以參考一下.array_splice定義和用法說明array array_splic
  • 重新定義inputtype=file的樣式的例子
    input樣式在html是固定的一個表單風格樣式了,它是非常的難看了,如果你希望他好看一些
一周排行
  • 下文爲各位介紹一篇關于mac系統使用brew配置nginx+php+mysql+PostgreSQL步驟,如果各位對于在mac系統使用brew配置nginx+php+mysql+PostgreSQl環境不了解就可以和 ...
  • 在做mysql主從同步時我們會碰到一個從庫read-only了,下面小編來爲各位介紹Mysql從庫read-only配置詳解,希望文章對各位有用.爲了防止用戶對從庫進行插入,采用read-only參數:配置:[roo ...
  • require() 語句包含並運行指定文件,include()語句會獲取指定文件中存在的所有文本/代碼/標記,並複制到使用 include 語句的文件中.這兩個函數有相似的功能,現在我們來講講他們包含文件的路徑問題.
  • 本文章簡單介紹關于php中DOMElement操作xml文檔程序有需要的朋友可參考.例1 代碼如下 <?php//Store your html into $html variable.$html=" ...
  • .ajaxsuccess( handler(event, xmlhttprequest, ajaxoptions) ) returns:jquery description:ajaxsuccess( handler(
  • command not found提示就是指命令未找到了而bash scp command not found就是告訴我們scp不對了,下面一起來看看問題的解決方法.今天在一系統上運行bash scp提示comman ...
  • 對于ajax跨域時碰到session頁面值無效了,但這個問題只在ie浏覽器中失效在其它浏覽器都是沒有問題的,後來在網上發現有一句話可以搞定呀,下面來給大家分享一下.折騰了好久,發現一行這個搞定. 代碼如下 heade ...
  • 如果你是驗證郵箱第一個不錯,如果你要獲取文章或字符串中是否有郵箱地址,可以用第二個.*/function funcemail($str)//郵箱正則表達式{ return (preg_match('/^[_.a
  • 騰達(Tenda)P1000-同一排插下按下Pair不能建立私有網路
    騰達(Tenda)P1000-同一排插下按下Pair不能建立私有網路怎麽辦?如果你碰到此問
  • 在自己開發中發現利用mvc更新數據時出現了沖突了,下面我們來看看下面的解決方法,有需要的參考. 代碼如下 public abstract class dbBase { public virtual void Subm