因为专注,所以专业
2005 - 2020

API接口调用协议获取代码百度token

时间:2020-05-19 16:20:49    作者:八叔模板堂

API网关设计:

一种是常用的基于HTTP网络协议

另一种RPC调用(当下火的微服务spring cloud和之前的Dubbo框架)

不同系统之间互调时,为达到调用方确保被授权,需提供被调方要求的token

以下是百度API接口的token获取代码


public static void main(String[] args) {
? ? String user_key = "d520c05ea2ab40568f119154ac7de67f";? ?//实际使用时客户需修改为自己的user_key
? ? String user_secret = "825a1efa5b29c29272ae8a6c5286fdrf";? ?//实际使用时客户需修改为自己的user_secret
? ? long timestamp = Integer.valueOf(String.valueOf(System.currentTimeMillis()/1000));
? ? String data = user_key + timestamp;
? ? String hmac = encode(data, user_secret);
? ? System.out.println(hmac);
?
}
private static String toHexString(byte[] bytes) {
? ? Formatter formatter = new Formatter();
? ? for (byte b : bytes) {
? ? ? ? formatter.format("%02x", b);
?
? ? }
? ? return formatter.toString();
?
}
private static String encode(String data, String key) {
? ? String token = null;
? ? try {
? ? ? ? SecretKeySpec signingKey = new SecretKeySpec(key.getBytes(), "HmacSHA1");
? ? ? ? Mac mac = Mac.getInstance("HmacSHA1");
? ? ? ? mac.init(signingKey);
? ? ? ? token = toHexString(mac.doFinal(data.getBytes()));
? ? } catch (Exception e) {
? ? ? ? e.printStackTrace();
?
? ? }
? ? return token;
}
还有就是公司对应的java.security.*包中的UUID类
String tokenKey = UUID.randomUUID().toString().toLowerCase().replaceAll("-", "") + "|" + DateUtils.getTimestamp().getTime();
? ? ? ? String newToken = UserPassword.getInstance().encrypt(tokenKey);
而token的获取也需要提供项目id和secret秘钥(id实际为事前分配给的,类似于百度的初测分配id)

赞(0
免费拨打  111-1111-1111
免费拨打  111-1111-1111免费拨打 111-1111-1111
微信二维码
手机二维码
返回顶部
返回顶部返回顶部