网页数据传输加密方法(前js+后java)
来源:互联网 发布:淘宝添加子账号 编辑:程序博客网 时间:2024/05/16 14:56
确保bcprov及codec的jar包存在路径汇总
import java.security.KeyPair;import java.security.KeyPairGenerator;import java.security.SecureRandom;import java.security.Security;import java.security.interfaces.RSAPrivateKey;import java.security.interfaces.RSAPublicKey;import java.util.Scanner;import javax.crypto.Cipher;import org.apache.commons.codec.binary.Base64;public class RSAUtils { private static final KeyPair keyPair = initKey(); private static KeyPair initKey(){ try { Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider()); SecureRandom random = new SecureRandom(); KeyPairGenerator generator = KeyPairGenerator.getInstance("RSA", "BC"); generator.initialize(1024, random); return generator.generateKeyPair(); }catch (Exception e) { throw new RuntimeException(e); } } /** * 生成public key * @return */ public static String generateBase64PublicKey(){ RSAPublicKey key = (RSAPublicKey)keyPair.getPublic(); return new String(Base64.encodeBase64(key.getEncoded())); } /** * 解密 * @param string * @return */ public static String decryptBase64(String string) { return new String(decrypt(Base64.decodeBase64(string))); } private static byte[] decrypt(byte[] string) { try { Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider()); Cipher cipher = Cipher.getInstance("RSA/None/PKCS1Padding", "BC"); RSAPrivateKey pbk = (RSAPrivateKey)keyPair.getPrivate(); cipher.init(Cipher.DECRYPT_MODE, pbk); byte[] plainText = cipher.doFinal(string); return plainText; }catch (Exception e) { throw new RuntimeException(e); } } public static void main(String[] args) { // 生成public key System.out.println(generateBase64PublicKey()); /* js端 加密过程 var publicKey = ""; //java产生的公钥 var encrypt = new JSEncrypt(); encrypt.setPublicKey(publicKey); // 加密 alert(encrypt.encrypt("hello")); */ // 解密 Scanner s=new Scanner(System.in); String str=s.nextLine(); System.out.println(decryptBase64(str)); }}
0 0
- 网页数据传输加密方法(前js+后java)
- java & javascript 自定义加密数据传输
- 网页加密JS代码
- php和js相互调用亲测 编码网页 加密网页怎么采集 网页编码 网页加密采集方法 亲测
- 【Https】iOS端两种Https数据传输加密方法
- java ajax json 前后端数据传输
- java数据传输DES加密和.net通用版
- md5.js(提交前加密)
- 加密网页破解方法
- 破解网页加密方法
- 网页关闭前js提示
- js\java 通过算法加密后,再base64
- Java实现二叉树的前序、中序、后序遍历(递归方法)
- Java实现二叉树的前序、中序、后序遍历(非递归方法)
- js 前绑定 后绑定
- apache与https(远程数据传输加密)
- 解析加密后的js
- 常见的数据传输加密方法MD5和SHA1
- What is DNS?
- C++STL 之map
- 搭建java开发环境+配置tomcat+使用eclipse
- 请移步本人新博客
- 【GDOI2014模拟】服务器 题解+代码
- 网页数据传输加密方法(前js+后java)
- 第七届蓝桥杯省赛B组题解(1~5)
- 宗族与古代基层社会治理
- Mathematica笔记
- JAVA学习之InputStream类与FileInputStream
- Android开发艺术探索——学习笔记_View事件体系
- HDU2022
- hadoop集群&docker 的一些坑
- Java形参个数可变的方法