加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

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)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读