签名

通道签名生成方式以及SDK介绍

签名简介

  • API签名是对请求的参数中的非空参数按字母顺序排序,拼接为下文中的形式,得到签名元串

a=1&b=123&c=dsadsa
  • 使用服务商与益稳通约定的秘钥,对签名元串进行AES加密,并将加密的结果作为"signature"参数发送

SDK

DEMO中提供了开箱即用的加密工具类。基本简介如下

实际使用过程中,根据需要直接使用SignatureUtil.java中的签名和验签方法即可。

AES加密工具类简介

/**
 * AES加密
 */
public class AESUtil {
    /**
     * 加密 返回base64格式字符串
     * @param content 需要加密的内容
     * @param password  加密密码
     * @return
     */
    public static byte[] encryptToBase64String(String content, String password);
    
    /**
     * 解密 返回base64格式字符串
     * @param content
     * @param password
     * @return
     */
    public static String decryptFromBase64String(String content, String password);
    
    /**
     * 加密
     *
     * @param content 需要加密的内容
     * @param password  加密密码
     * @return
     */
    public static byte[] encrypt(String content, String password);
    
    /**解密
     * @param content  待解密内容
     * @param password 解密密钥
     * @return
     */
    public static byte[] decrypt(byte[] content, String password);

签名工具类简介

/**
 * 签名工具类
 */
public class SignatureUtil {
    /**
     * 根据对象签名
     * @param secretKey
     * @param object
     * @return
     */
    public static String signByObj(String secretKey, Object object);
    
    public static String signByObj(String secretKey, Object object ,String[] excludes);
    
    /**
     * 根据MAP签名
     * @param map
     * @return
     */
    public static String signByMap(String secretKey, TreeMap<String, Object> map);
    
    public static String signByMap(String secretKey, TreeMap<String, Object> map , String[] excludes);
        
    /**
     * 根据MAP验签
     * @param secretKey
     * @param originMap
     * @param originSignature
     * @return
     */ 
     public static boolean verifySignatureByMap(String secretKey, TreeMap<String, Object> originMap, String originSignature);
     
     public static boolean verifySignatureByMap(String secretKey, TreeMap<String, Object> originMap, String originSignature,String[] excludes);
      
    /**
     * 根据对象验签
     * @param secretKey
     * @param originObj
     * @param originSignature
     * @return
     */
    public static boolean verifySignatureByObj(String secretKey,Object originObj,String originSignature);
    
    public static boolean verifySignatureByObj(String secretKey,Object originObj,String originSignature,String[] excludes);
    

Last updated