PHP、Java des加密解密實例__第1頁
PHP、Java des加密解密實例__第2頁
PHP、Java des加密解密實例__第3頁
PHP、Java des加密解密實例__第4頁
PHP、Java des加密解密實例__第5頁
免費預覽已結束,剩余1頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、PHP、Java des加密解密實例_ 這篇文章主要介紹了PHP、Java des加密解密實例,des加密是對稱加密中在互聯網應用的比較多的一種加密方式,本文分別給出了PHP和JAVA版本的實現代碼,需要的伴侶可以參考下 des加密是對稱加密中在互聯網應用的比較多的一種加密方式,php 通過mcrypt擴展庫來支持des加密,要在Php中用法des加密,需要先安裝mcrypt擴展庫 下面是加密解密的實例 代碼如下: $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB); $iv = mcrypt_create_i

2、v($iv_size, MCRYPT_RAND); $key = This is a very secret key;/密鑰 $text = Meet me at 11 oclock behind the monument.;/需要加密的內容 echo ($text) . n; $crypttext =base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv); echo $crypttext . n;/加密后的內容 echo mcrypt_decrypt(MCRYPT_RIJNDAE

3、L_256,$key,base64_decode($crypttext),MCRYPT_MODE_ECB,$iv);/解密后的內容 在AES加密算法中通常會用到MCRYPT_RIJNDAEL_128、MCRYPT_RIJNDAEL_192、MCRYPT_RIJNDAEL_256三種,后面的128、192、256代表的是秘鑰(也就是加密的Key)是多少bit的,比如用法的是MCRYPT_RIJNDAEL_128,那么用這個算法加密時秘鑰長度就是128bit的,比如 $key = fjjda09$#+*%$fada,是20個字符,那在實際加密的時候只用到前16個字符加密(16*8=128),不足1

4、28bit的php中會用0來補齊。 有的時候做項目對接的時候,可能你用的是Php加密的,而對方用的是java寫的,對接的過程中就發覺機加密后的內容對方解密不了,這是由于Php跟java在實現這個算法的時候有差別,要想正確加密解密需要兩邊都做下處理: PHP: 代碼如下: class Security public static function encrypt($input, $key) $size = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB); $input = Security:pkcs5_pad($input,

5、 $size); $td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, , MCRYPT_MODE_ECB, ); $iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND); mcrypt_generic_init($td, $key, $iv); $data = mcrypt_generic($td, $input); mcrypt_generic_deinit($td); mcrypt_module_close($td); $data = base64_encode($data)

6、; return $data; private static function pkcs5_pad ($text, $blocksize) $pad = $blocksize - (strlen($text) % $blocksize); return $text . str_repeat(chr($pad), $pad); public static function decrypt($sStr, $sKey) $decrypted= mcrypt_decrypt( MCRYPT_RIJNDAEL_128, $sKey, base64_decode($sStr), MCRYPT_MODE_E

7、CB ); $dec_s = strlen($decrypted); $padding = ord($decrypted$dec_s-1); $decrypted = substr($decrypted, 0, -$padding); return $decrypted; $key = 1234567891234567; $data = example; $value = Security:encrypt($data , $key ); echo $value. ; echo Security:decrypt($value, $key ); Java: 代碼如下: import javax.c

8、rypto.Cipher; import javax.crypto.spec.SecretKeySpec; import mons.codec.binary.Base64; public class Security public static String encrypt(String input, String key) byte crypted = null; try SecretKeySpec skey = new SecretKeySpec(key.getBytes(), AES); Cipher cipher = Cipher.getInstance(AES/ECB/PKCS5Pa

9、dding); cipher.init(Cipher.ENCRYPT_MODE, skey); crypted = cipher.doFinal(input.getBytes(); catch(Exception e) System.out.println(e.toString(); return new String(Base64.encodeBase64(crypted); public static String decrypt(String input, String key) byte output = null; try SecretKeySpec skey = new Secre

10、tKeySpec(key.getBytes(), AES); Cipher cipher = Cipher.getInstance(AES/ECB/PKCS5Padding); cipher.init(Cipher.DECRYPT_MODE, skey); output = cipher.doFinal(Base64.decodeBase64(input); catch(Exception e) System.out.println(e.toString(); return new String(output); public static void main(String args) String key = 1234567891234567

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論