php des 加密解密实例
发布时间:2020-05-25 07:54:16 所属栏目:PHP 来源:互联网
导读:php des 加密解密实例
|
下面是脚本之家 jb51.cc 通过网络收集整理的代码片段。 脚本之家小编现在分享给大家,也给大家做个参考。 $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256,MCRYPT_MODE_ECB); $iv = mcrypt_create_iv($iv_size,MCRYPT_RAND); $key = "This is a very secret key";//密钥 $text = "Meet me at 11 o'clock 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_RIJNDAEL_256,base64_decode($crypttext),$iv);//解密后的内容 <?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,$size);
$td = mcrypt_module_open(MCRYPT_RIJNDAEL_128,'','');
$iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td),MCRYPT_RAND);
mcrypt_generic_init($td,$iv);
$data = mcrypt_generic($td,$input);
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
$data = base64_encode($data);
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_ECB
);
$dec_s = strlen($decrypted);
$padding = ord($decrypted[$dec_s-1]);
$decrypted = substr($decrypted,-$padding);
return $decrypted;
}
}
$key = "1234567891234567";
$data = "example";
$value = Security::encrypt($data,$key );
echo $value.'<br/>';
echo Security::decrypt($value,$key );
Java: import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import org.apache.commons.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/PKCS5Padding");
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 SecretKeySpec(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";
String data = "example";
System.out.println(Security.encrypt(data,key));
System.out.println(Security.decrypt(Security.encrypt(data,key),key));
}
}
以上是脚本之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。 如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
