aes 加密 php 和 java 互通 -凯发k8国际

`
jickcai
  • 浏览: 235784 次
  • 性别:
  • 来自: 北京
博主相关
  • 博客
  • 微博
  • 相册
  • 收藏
  • 社区版块
    • ( 0)
    • ( 0)
    • ( 0)
    存档分类
    最新评论

    aes 加密 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, $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);

    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, 0, -$padding);

    return $decrypted;

    }

    }

     

     

     

    $key = "1234567891234567";

    $data = "example";

     

    $value = security::encrypt($data , $key );

    echo $value.'
    ';

    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));

    }

    }

     

    分享到:
    |
    评论
    2 楼 seraph_fd 2016-04-19  
      已取用,谢谢。
    但将base64编码换成了hex编码。
    1 楼 raxliao 2015-06-11  
    这个只支持16位的密钥,而且密码不能只能aes的随机码。

    不过测试过后,的确是php 和java的确是互通的

    相关推荐

      java aes加密java aes加密java aes加密java aes加密java aes加密java aes加密java aes加密

      c/c 与java互通 aes加密解密; 只使用基本char,数组运算实现加密算法;不依赖其它加密lib

      java,php,golang,javascript,多端代码,使用aes ecb 128加密解密内容互通,可以使用任意一种语言加密,使用另一种语言解密

      aes加密算法的java实现(只有加密)

      aes高级加密标准,在密码学中又称rijndael加密法,是美国联邦政府采用的一种...本软件是用java语言开发,实现了aes算法对文件的加密和解密,并在界面上加了进度条,来提示用户加密解密的进度。如果不足之处,欢迎留言。

      java实现aes加解密

      java aes加密代码,接口调用应用可以用到

      压缩包里有两个工程,一个vc6.0一个myeclipse,本帖是修复贴,原帖地址c/c 与java互通 aes加密解密,算法ecb/pkcs5padding http://download.csdn.net/download/wangsonghiweed/4328267 -来自csdn,有童鞋反映有...

      delphi实现aes加密和解密, 同java加解密兼容

      c/c 与java互通 aes加密解密; 只使用基本string,数组运算实现加密算法;不依赖其它加密lib

      * 测试aes加密和解密 * @param args */ public static void main(string[] args) { /**数据初始化**/ string content = "http://www.mbaike.net"; string password = "1234567890"; /**加密(1)**/...

      aes算法的实现过程,实现了aes的加密和解密过程

      aesx/aes4.php为php aes128加密解密类 //加密方法 function desencryptstr($xml,$keystring){} //解密方法 function desdecryptstr($xml,$keystring){} aesx/httpclient.class.php 通信类 send3.php调用文件

      主要介绍了java使用hex编码解码实现aes加密解密功能,结合完整实例形式分析了aes加密解密功能的定义与使用方法,需要的朋友可以参考下

      实现的delphi aes加解密与java aes 加解密互转, delphi 7 下测试通过,这是一个delphi7下的例子程序.

      java代码-java使用aes加密解密 aes-128-ecb加密 ——学习参考资料:仅用于个人学习使用

      1.采用秘钥为16位长度的加密字符 2.加密算法为aes/ecb/pkcs5padding 3.解决加解密乱码问题 4.完整的线上可运行代码及各方法及步骤注释 5.无任何插件,java环境直接运行

      java实现aes加密算法java实现aes加密算法

      aes加密的两种方式。一种string 一种byte。并且添加进制转换解决加密过程非法报错问题

      aes加密aes加密aes加密aes加密aes加密aes加密

    global site tag (gtag.js) - google analytics
    网站地图