admin管理员组文章数量:1794759
Java 实现PHP的openssl
PHP代码:
class TestController { public function php_openssl_encrypt($data,$pwd,$iv) { //下面两种方式得到字符串是一样的 return openssl_encrypt($data, 'aes-256-cbc', $pwd, 0, $iv); // return base64_encode(openssl_encrypt($data, 'aes-256-cbc', $pwd, OPENSSL_RAW_DATA, $iv)); } public function main() { $str = $this->php_openssl_encrypt('my_data','my_password','1234567890123456'); //输出: uD1WB/3VZH+zEObhVxdQvA== echo $str; } }Java代码:
package main.java.leon.channelmand; import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import java.util.Base64; public class Main { public static void main(String[] args) { String data = "my_data"; String passwrod = "my_password"; String iv = "1234567890123456"; try { String base64Str = java_openssl_encrypt(data, passwrod, iv); //输出: uD1WB/3VZH+zEObhVxdQvA== System.out.print(base64Str); } catch (Exception e) { e.printStackTrace(); } } public static String java_openssl_encrypt(String data, String password, String iv) throws Exception { byte[] key = new byte[32]; for (int i = 0; i < 32; i++) { if (i < password.getBytes().length) { key[i] = password.getBytes()[i]; } else { key[i] = 0; } } Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(key, "AES"), new IvParameterSpec(iv.getBytes())); String base64Str = Base64.getEncoder().encodeToString(cipher.doFinal(data.getBytes())); return base64Str; } }版权声明:本文标题:Java 实现PHP的openssl 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686917100a118024.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论