zoukankan      html  css  js  c++  java
  • 钉钉扫码登录第三方,appSecret签名算法(附包名)

    包名

    import java.io.UnsupportedEncodingException;
    import java.net.URLEncoder;
    import javax.crypto.Mac;
    import javax.crypto.spec.SecretKeySpec;
    import org.apache.commons.codec.binary.Base64;
    

    方法

    /**
     * 1免登 - 通过appSecret计算出来的签名值,并进行urlEncode
     * 1签名算法为
     * */
    public static String getAppSecretSign(String appSecret, String timestamp) {
    	String signStr = "";
    	// 根据timestamp, appSecret计算签名值
    	try {
    		
    		String stringToSign = timestamp;
    		Mac mac = Mac.getInstance("HmacSHA256");
    		mac.init(new SecretKeySpec(appSecret.getBytes("UTF-8"), "HmacSHA256"));
    		byte[] signatureBytes = mac.doFinal(stringToSign.getBytes("UTF-8"));
    		String signature = new String(Base64.encodeBase64(signatureBytes));
    		signStr = urlEncode(signature,"UTF-8");
    	} catch (Exception e) {
    		e.printStackTrace();
    	} finally {
    		
    	}
    	return signStr;
    }
    
     /**
     * 1钉钉免登签名算法 - urlEncode
     * 
     * */
    public static String urlEncode(String value, String encoding) {
        if (value == null) {
            return "";
        }
        try {
            String encoded = URLEncoder.encode(value, encoding);
            return encoded.replace("+", "%20").replace("*", "%2A")
                .replace("~", "%7E").replace("/", "%2F");
        } catch (UnsupportedEncodingException e) {
            throw new IllegalArgumentException("FailedToEncodeUri", e);
        }
    }
  • 相关阅读:
    添加一个用户到指定用户组: gpasswd –a 用户名 组名 usermod –G 组名 用户名
    MySQL创建用户和授权
    shell
    启动脚本
    TODO
    mysql表分区
    mysql导入千万级数据实操
    mysql快速保存插入大量数据一些方法总结(转)
    MySQL存储过程插入数据过慢处理方法(转)
    mysql备份删库建库导入库
  • 原文地址:https://www.cnblogs.com/qungmu/p/12682136.html
Copyright © 2011-2022 走看看