您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

兼容PHP和Java的des加密解密代码分享_PHP教程

2024/3/14 17:00:51发布44次查看
php代码:
key = $key; if($iv == 0) { $this->iv = $key; } else { $this->iv = $iv; } } //加密 function encrypt($str) { $size = mcrypt_get_block_size ( mcrypt_des, mcrypt_mode_cbc ); $str = $this->pkcs5pad ( $str, $size ); $data=mcrypt_cbc(mcrypt_des, $this->key, $str, mcrypt_encrypt, $this->iv); //$data=strtoupper(bin2hex($data)); //返回大写十六进制字符串 return base64_encode($data); } //解密 function decrypt($str) { $str = base64_decode ($str); //$strbin = $this->hex2bin( strtolower($str)); $str = mcrypt_cbc(mcrypt_des, $this->key, $str, mcrypt_decrypt, $this->iv ); $str = $this->pkcs5unpad( $str ); return $str; } function hex2bin($hexdata) { $bindata = ; for($i = 0; $i strlen ( $text )) return false; if (strspn ( $text, chr ( $pad ), strlen ( $text ) - $pad ) != $pad) return false; return substr ( $text, 0, - 1 * $pad ); }}$str = 'abcd';$key= 'asdfwef5';$crypt = new des($key);$mstr = $crypt->encrypt($str);$str = $crypt->decrypt($mstr); echo $str.' '.$mstr; ?>
java代码:
package com.test; import it.sauronsoftware.base64.base64; import java.security.key;import java.security.securerandom;import java.security.spec.algorithmparameterspec; import javax.crypto.cipher;import javax.crypto.secretkeyfactory;import javax.crypto.spec.deskeyspec;import javax.crypto.spec.ivparameterspec; public class main{ public static final string algorithm_des = des/cbc/pkcs5padding; /** * des算法,加密 * * @param data 待加密字符串 * @param key 加密私钥,长度不能够小于8位 * @return 加密后的字节数组,一般结合base64编码使用 * @throws cryptexception 异常 */ public static string encode(string key,string data) throws exception { return encode(key, data.getbytes()); } /** * des算法,加密 * * @param data 待加密字符串 * @param key 加密私钥,长度不能够小于8位 * @return 加密后的字节数组,一般结合base64编码使用 * @throws cryptexception 异常 */ public static string encode(string key,byte[] data) throws exception { try { deskeyspec dks = new deskeyspec(key.getbytes()); secretkeyfactory keyfactory = secretkeyfactory.getinstance(des); //key的长度不能够小于8位字节 key secretkey = keyfactory.generatesecret(dks); cipher cipher = cipher.getinstance(algorithm_des); ivparameterspec iv = new ivparameterspec(key.getbytes()); algorithmparameterspec paramspec = iv; cipher.init(cipher.encrypt_mode, secretkey,paramspec); byte[] bytes = cipher.dofinal(data); // return byte2hex(bytes); return new string(base64.encode(bytes)); } catch (exception e) { throw new exception(e); } } /** * des算法,解密 * * @param data 待解密字符串 * @param key 解密私钥,长度不能够小于8位 * @return 解密后的字节数组 * @throws exception 异常 */ public static byte[] decode(string key,byte[] data) throws exception { try { securerandom sr = new securerandom(); deskeyspec dks = new deskeyspec(key.getbytes()); secretkeyfactory keyfactory = secretkeyfactory.getinstance(des); //key的长度不能够小于8位字节 key secretkey = keyfactory.generatesecret(dks); cipher cipher = cipher.getinstance(algorithm_des); ivparameterspec iv = new ivparameterspec(key.getbytes()); algorithmparameterspec paramspec = iv; cipher.init(cipher.decrypt_mode, secretkey,paramspec); return cipher.dofinal(data); } catch (exception e) { throw new exception(e); } } /** * 获取编码后的值 * @param key * @param data * @return * @throws exception */ public static string decodevalue(string key,string data) { byte[] datas; string value = null; try { datas = decode(key, base64.decode(data.getbytes())); value = new string(datas); } catch (exception e) { value = ; } return value; } public static void main(string[] args) throws exception { system.out.println(明:abcd ;密: + main.encode(asdfwef5,abcd)); }}
http://www.bkjia.com/phpjc/824790.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/824790.htmltecharticlephp代码: phpclass des{var $key;var $iv; //偏移量 function des($key, $iv=0){$this-key = $key;if($iv == 0){$this-iv = $key;}else {$this-iv = $iv;}} //加密function encrypt($str...
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product