自定義加密演算法的實現

2021-07-25 18:00:19 字數 840 閱讀 6991

由於要傳乙個需要保密的id,因此用到對稱加密,但mcrypt_encrypt演算法加密後字串太長,因此想實現乙個自定義加密演算法,想法如下

首先先對key計算sha1,取結果的前32bit,然後跟要加密整數進行異或,得到乙個加密後的32bit結果

對結果分組:2bit | 6bit | 6bit | 6bit | 6bit | 6bit

各個組分別取名為:a0、a1、a2、a3、a4、a5

另定義乙個長度64的字典陣列

$dict=array('1','2','3','4','5','6','7','8','9',

'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',

'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',

'01','02','03');

將前面每個分組的值作為字典陣列的下標,則加密結果為:$dict[a0].$dict[a1].$dict[a2].$dict[a3].$dict[a4].$dict[a5]

這樣加密後的結果就是乙個長度6-12的字串,如果字典陣列最後3個元素用其他單字元表示,那麼結果就固定為6個字元的字串。

由於初學php不久,對php的函式庫不熟悉,求大俠幫忙實現下加密解密演算法:

string encrypt(int id,string key)

int decrypt(string text,string key)

php加密自定義版權,PHP自定義加密方式

這篇文章主要介紹了php自定義加密方式,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下 簡單編碼函式 與php decode函式對應 function php encode str ord 函式返回字串的首個字元的 ascii 值。chr 函式從指定的 ascii 值返回字元。簡單解碼...

Silverlight 自定義加密

silverlight 自定義加密 其他語言同樣適合 首先我們來溫故下基礎知識 位運算 在c 中,這三個運算可以將int byte以二進位制的方式進行按位與 按位或 按位異或運算。1.按位與運算 0與0 1得0,1與1得1。示例 10010001 1111 0000 1001 0000。2.按位或運...

C AES加密演算法實現

密碼學中的高階加密標準 advanced encryption standard,aes 又稱rijndael加密法,是美國聯邦 採用的一種區塊加密標準。這個標準用來替代原先的des,已經被多方分析且廣為全世界所使用。經過五年的甄選流程,高階加密標準由美國國家標準與技術研究院 nist 於2001年...