Java学习笔记1:java后台写接口,使用AES和RSA
来源:互联网 发布:jpeg量化矩阵 编辑:程序博客网 时间:2024/05/22 02:26
1.获取签名后的String,生成签名串后,下面使用MD5进行签名串的加密,大家可以改成使用RSA或者AES
package com.util;import java.io.UnsupportedEncodingException;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;import java.util.ArrayList;import java.util.Collections;import java.util.List;import java.util.Map;/** * 签名工具类 * @author Administrator * */public class SignUtils {/** * 生成签名 * @param req 需要签名的要素 * @return 签名结果字符串 */ public static String buildSignature(Map<String, String> params, String securityKey) {String prestr = createSignString(params);prestr = prestr + "&" + MD5Utils.md5(securityKey);return MD5Utils.md5(prestr); } public static String createSignString(Map<String, String> params) { List<String> keys = new ArrayList<String>(params.keySet()); Collections.sort(keys); StringBuilder sb = new StringBuilder(); for (int i = 0; i < keys.size(); i++) { String key = keys.get(i); String value = params.get(key); if (value == null) continue; sb.append(key); sb.append("="); sb.append(value); sb.append("&"); } return sb.toString().substring(0, sb.length()-1); } }
2.RSA与AES加密与解密
package com.util;import java.util.HashMap;import java.util.Map;public class Test1 {public static void main(String[] args) {// TODO Auto-generated method stub//AES加密解密, 一定要16位/*String AESKey = "lzc1016961351mmm";String encryptStr = AES.encryptToBase64("我爱你中国", AESKey);System.out.println(encryptStr);String str = AES.decryptFromBase64(encryptStr, AESKey);System.out.println(str);*/try {Map<String, String> keys = RSA.generateKeyPair();Map<String, String> map = new HashMap<String, String>();String publicKey = keys.get("publicKey");String privateKey = keys.get("privateKey");String encryptStr = RSA.encrypt("*(sdf我爱你中国123434dfdasfds", publicKey);System.out.println(encryptStr);String str = RSA.decrypt(encryptStr, privateKey);System.out.println(str);String str1 = RSA.decrypt(encryptStr, privateKey);System.out.println(str);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}} }
3.关于写接口的一些想法
对接接口需要用到AES和RSA加密
以下提供一种接口的写法
使用httppost 请求到后台
后台接口两个参数
data: 使用RSA公钥加密的json数据
encryptkey: AES密钥密文
使用AES解密encryptkey, 得到解密的RSA的privatekey,然后用privatekey去解密data字段
解密之后的到的就是json数据,解密后的数据再和sign签名判断是否相等,如果相等则通过验签收,sign方法可以根据上面方法修改成自己合适的
RSA的publickey是事先生成的,用于加密,加密和解密的可以根据上面的方法进行操作,由于版权问题,这里RSA加密和解密不给予提供,请谅解
0 0
- Java学习笔记1:java后台写接口,使用AES和RSA
- java实用加密算法AES和RSA
- java RSA和AES加密解密工具
- 关于使用JS前台加密、JAVA后台解密的RSA实现,RSA加密和签名
- 关于使用JS前台加密、JAVA后台解密的RSA实现,RSA加密和签名
- AES算法和RSA算法的JAVA實現
- java实现RSA和AES加密(一)
- AES+RSA加密解密(js和java互通)
- JAVA RSA公钥私钥学习笔记
- RSA AES 前端JS与后台JAVA的加密解密的是实现
- 【Java学习笔记】Comparable接口的实现和使用
- 【Java学习笔记】Comparable接口的实现和使用
- 【Java学习笔记】Comparable接口的实现和使用
- 【Java学习笔记】Comparable接口的实现和使用
- 【Java学习笔记】Comparable接口的实现和使用
- Java【后台学习】编写后台接口
- Java安全学习笔记(十一)-RSA算法加密和解密
- AES - Java编程: 使用AES
- 只有五行的Floyd最短路径算法
- 点阵字库-学习笔记
- usaco 3.2 ratios 2008.7.20
- awk 编程
- 公司标示和反相域名
- Java学习笔记1:java后台写接口,使用AES和RSA
- 欢迎使用CSDN-markdown编辑器
- Oracle 11g 在audit_file_dest目录下产生大量的aud文件
- Vijos 1025 2008.9.7
- 系统设计以及javascript笔记:用户行为分析研究之数据采集
- ITOO4.1之cookie学习
- 应用沙盒
- Eclispe 生成JAVADOC 报java.lang.IllegalArgumentException解决方案
- 梯度下降优化算法概述