博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java php公用加密_php 和 java共用的加密方法
阅读量:5150 次
发布时间:2019-06-13

本文共 1814 字,大约阅读时间需要 6 分钟。

http://www.php.net/manual/en/ref.mcrypt.php To have the same result in Java and PHP with the BouncyCastle library : php function encrypt($str, $operation, $key) { $ret = ''; $key = pack('H*', $key); if (strtoupper($operation) == 'DECODE')

http://www.php.net/manual/en/ref.mcrypt.php

To have the same result in Java and PHP with the BouncyCastle library :

php

function encrypt($str, $operation, $key)

{

$ret = '';

$key = pack('H*', $key);

if (strtoupper($operation) == 'DECODE') {

$str = pack('H*', $str);

$ret = mcrypt_ecb(MCRYPT_BLOWFISH, $key, $str, MCRYPT_DECRYPT);

} else {

$ret = mcrypt_ecb(MCRYPT_BLOWFISH, $key, $str, MCRYPT_ENCRYPT);

$ret = bin2hex($ret);

}

return $ret;

}

java

import java.security.*;

import javax.crypto.*;

import javax.crypto.spec.SecretKeySpec;

public class tester {

public static void crypter(String password) {

try {

// -- Install jar "bcprov-jdk14-135.jar" in /jre/lib/ext/

//

Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());

Cipher cipher = Cipher.getInstance("Blowfish/ECB/ZeroBytePadding");

// -- Substring is used to have no problem with key length

SecretKeySpec keySpec = new SecretKeySpec(password.substring(0,8).getBytes(), "Blowfish");

cipher.init(Cipher.ENCRYPT_MODE, keySpec);

byte[] outText = cipher.doFinal(password.getBytes());

System.out.println(asHex(outText));

}

catch (Exception e) {

e.printStackTrace();

}

}

public static String asHex (byte buf[]) {

StringBuffer strbuf = new StringBuffer(buf.length * 2);

int i;

for (i = 0; i < buf.length; i++) {

if (((int) buf[i] & 0xff) < 0x10)

strbuf.append("0");

strbuf.append(Long.toString((int) buf[i] & 0xff, 16));

}

return strbuf.toString();

}

public static void main(String[] args) {

try {

crypter("password");

}

catch (Exception e) {

e.printStackTrace();

}

}

}

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

你可能感兴趣的文章
Hive(7)-基本查询语句
查看>>
注意java的对象引用
查看>>
C++ 面向对象 类成员函数this指针
查看>>
Python字符编码
查看>>
leetcode 49. 字母异位词分组(Group Anagrams)
查看>>
NSPredicate的使用,超级强大
查看>>
自动分割mp3等音频视频文件的脚本
查看>>
判断字符串是否为空的注意事项
查看>>
布兰诗歌
查看>>
C# RichTextBox 滚动条 滚动到最新行
查看>>
js编码
查看>>
BZOJ 1412 & 最小割
查看>>
【26】java的组合与继承
查看>>
web开发,我们是否应该更加Deep Inside了?
查看>>
springboot部署多个vue项目
查看>>
Pycharm Error loading package list:Status: 403错误解决方法
查看>>
steps/train_sat.sh
查看>>
TLS 1.0协议
查看>>
java递归的几种用法
查看>>
微信小程序 - 接口更新记录以及解决方案(2018/12/26)
查看>>