当前位置: 首页 > news >正文

官方网站建设银行年利息是多少钱wordpress打电话聊插件

官方网站建设银行年利息是多少钱,wordpress打电话聊插件,关键词排名点击软件网站,wordpress建站需要多大内存前言 当前时代#xff0c;数据是王道#xff01;当我们自己的平台有了足够大的数据量#xff0c;就有可能诞生一个开放平台宫第三方分析、使用。那么我们怎么去实现对外部调用接口的控制与鉴权呢#xff1f;这是我们今天的重点——接口签名认证#xff01;#xff01;数据是王道当我们自己的平台有了足够大的数据量就有可能诞生一个开放平台宫第三方分析、使用。那么我们怎么去实现对外部调用接口的控制与鉴权呢这是我们今天的重点——接口签名认证 签名认证 开放平台会为每一位注册用户分配一个对应账户API KEY和秘钥API SECRET。我们为了保证接口的安全性用户在每次接口的调用都需要上传一个所谓的签名基于API KEY和API SECRET获取 签名认证步骤 首先生成一个Unix时间戳timestamp,时间精确到毫秒【即1970年1月1日UTC/GMT的午夜开始所经过的毫秒数】生成随机数nonce(注目前定义的是32位的可以通过随机数工具类生成) ;1将timestamp、nonce、API_KEY 这三个字符串依据“字符串首位字符的ASCII码”进行升序排列排序过程中若出现ASCII码值相同的情况则依次递增对下一位进行比较这种排序”也就是俗称的字典序“并将排序后的结果拼接成为一个字符串join_str 2接下来在用API_SECRET对上面生成这个字符串join_str做hmac-sha256 签名并且以16进制编码得到signature将上述得到的timestampnonce,signature与 API_KEY按照 #{k}#{v}并以 , 为区分拼接在一起形成新的字符串这就是要返回签名认证字符串authorization;当完成以上4步我们就可以获取最终的签名认证字符串了。调用接口时将通过签名认证步骤得到的值authorization 传给HTTP HEADER的Authorization对应的值请求体部分按照相对应文档请求参数说明正确填写正常发送请求即可完成一次接口调用。 下面以java代码举例 假设 API_KEY 233453f1d1eb4eb5a5ad9c8dac0d02cc; API_SECRET 444af44cd3a247c594438fb60d7b1d52; 1. 获得timestamp(unix时间戳)返回timestamp 1633431976787 实现方式: String timestamp Long.toString(System.currentTimeMillis());  2. 获得随机nonce返回nonce 3isQFsTjsnNOLvIPXhf3HlW17WSfQqp9 可用下面方式实现 String nonce RandomStringUtils.randomAlphanumeric(32); 3.将timestamp、nonce、API_KEY 这三个字符串依据“字符串首位字符的ASCII码”进行升序排列排序过程中若出现ASCII码值相同的情况则依次递增对下一位进行比较并join成一个字符串返回join_str:1633431976787233453f1d1eb4eb5a5ad9c8dac0d02cc3isQFsTjsnNOLvIPXhf3HlW17WSfQqp9 可用下面方式实现: public static String genOriString(String timestamp,String nonce,String API_KEY){ArrayListString beforesort new ArrayListString();beforesort.add(API_KEY);beforesort.add(timestamp);beforesort.add(nonce);Collections.sort(beforesort, new SpellComparator());StringBuffer aftersort new StringBuffer();for (int i 0; i beforesort.size(); i) {aftersort.append(beforesort.get(i));}String join_str aftersort.toString();return join_str;} 4. 用API_SECRET对join_str做hmac-sha256签名且以16进制编码返回signature:7d37d14406323f0ab30d1d4db1e7f2eb27abac42f3de00d619025108fa6cd5e4 可用下面方式实现 public static String genEncryptString(String join_str, String API_SECRET){Key sk new SecretKeySpec(API_SECRET.getBytes(), HmacSHA256);Mac mac Mac.getInstance(sk.getAlgorithm());mac.init(sk);final byte[] hmac mac.doFinal(join_str.getBytes());//完成hmac-sha256签名StringBuilder sb new StringBuilder(hmac.length * 2);Formatter formatter new Formatter(sb);for (byte b : hmac) {formatter.format(%02x, b);}String signature sb.toString();//完成16进制编码return signature;} 5. 将上述的值按照 #{k}#{v} 并以 , join在一起返回签名认证字符串 key2371d3f1d1eb4eb5a5ad9c8dac0d02cc,timestamp1638431976741,nonce3isWSsTjsnNOLvIPXhf3HlW17WSfQqp9,signature7d37d14406323f0ab30d1d4db1e7f2eb27abac42f3de00d619025108fa6cd5e4 可用下面方式实现 public static String genauthorization(String API_KEY, String timestamp, String nonce, String signature){String authorization key API_KEY,timestamp timestamp,nonce nonce,signature signature;return authorization;} 6. 将该签名认证字符串赋值给HTTP HEADER 的 Authorization 中完成一次接口访问。 DEMO pom文件中添加一下支持 dependencygroupIdorg.apache.commons/groupIdartifactIdcommons-lang3/artifactIdversion3.12.0/version/dependencydependencygroupIdorg.apache.httpcomponents/groupIdartifactIdhttpmime/artifactIdversionRELEASE/versionscopecompile/scope/dependency 具体实现代码 import java.util.Comparator;public class SpellComparator implements ComparatorObject {public int compare(Object o1, Object o2) {try{String s1 new String(o1.toString().getBytes(GB2312), ISO-8859-1);String s2 new String(o2.toString().getBytes(GB2312), ISO-8859-1);return s1.compareTo(s2);}catch (Exception e){e.printStackTrace();}return 0;} }import java.io.IOException; import java.security.InvalidKeyException; import java.security.Key; import java.security.NoSuchAlgorithmException; import java.security.SignatureException; import java.util.ArrayList; import java.util.Collections; import java.util.Formatter; import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; import org.apache.commons.lang3.RandomStringUtils; import org.apache.http.client.ClientProtocolException;public class GenerateString {// 开放平台注册获取idAPI KEYpublic static final String id 22bfe9745135;// 开放平台注册获取密钥API SECRETpublic static final String secret 19fbdc10;private static final String HASH_ALGORITHM HmacSHA256;static String timestamp Long.toString(System.currentTimeMillis());static String nonce RandomStringUtils.randomAlphanumeric(32);public static String genOriString(String api_key){ArrayListString beforesort new ArrayListString();beforesort.add(api_key);beforesort.add(timestamp);beforesort.add(nonce);Collections.sort(beforesort, new SpellComparator());StringBuffer aftersort new StringBuffer();for (int i 0; i beforesort.size(); i) {aftersort.append(beforesort.get(i));}String OriString aftersort.toString();return OriString;}public static String genEncryptString(String genOriString, String api_secret)throws SignatureException {try{Key sk new SecretKeySpec(api_secret.getBytes(), HASH_ALGORITHM);Mac mac Mac.getInstance(sk.getAlgorithm());mac.init(sk);final byte[] hmac mac.doFinal(genOriString.getBytes());StringBuilder sb new StringBuilder(hmac.length * 2);SuppressWarnings(resource)Formatter formatter new Formatter(sb);for (byte b : hmac) {formatter.format(%02x, b);}String EncryptedString sb.toString();return EncryptedString;}catch (NoSuchAlgorithmException e1){throw new SignatureException(error building signature, no such algorithm in device HASH_ALGORITHM);}catch (InvalidKeyException e){throw new SignatureException(error building signature, invalid key HASH_ALGORITHM);}}public static String genHeaderParam(String api_key, String api_secret) throws SignatureException{String GenOriString genOriString(api_key);String EncryptedString genEncryptString(GenOriString, api_secret);String HeaderParam key api_key,timestamp timestamp,nonce nonce,signature EncryptedString;System.out.println(HeaderParam);return HeaderParam;}public static void main(String[] args) throws ClientProtocolException, IOException, SignatureException{String s genHeaderParam(id, secret);System.out.println(s);} }好了今天关于开放平台之接口认证鉴权就到这里。 欢迎大家点击下方卡片关注《coder练习生》
http://www.ho-use.cn/article/10818948.html

相关文章:

  • 中国投诉网站做袜子机器多少钱一台wordpress 文章阅读数
  • 在哪个网站可以免费制作简历网业黑色
  • 网站app下载大全静态购物网站模板
  • 保定干洗机做网站注册公司那家网站做的比较好
  • 电脑版和手机版网站怎么做wordpress 读取用户信息
  • 做一个自己的免费网站网页设计大赛策划案的背景
  • 网站更新和维护怎么做pc网站同步手机网站
  • 网站开发使用api对seo举例说明什么是seo
  • 网站空间备份母婴用品网站建设
  • 关于自己公司的网站怎么做绵阳网站定制
  • 没有网站怎么做cps步骤的近义词
  • 服装网页设计网站织梦 音乐网站
  • 一般购物网站怎么做推广汕头市企业网站建设服务机构
  • 网站空间每年继费到哪交网站欢迎框代码
  • 新闻聚合网站怎么做泰安网站推广优化
  • 旅游电子商务网站开发项目进度表免费动图制作app
  • wordpress文章大网站云虚拟主机做二个网站
  • 电子商务的网站的建设内容网赢做网站怎么样
  • 网站培训机构网站有必要使用伪静态么
  • 做网站去哪里做国外平面设计作品集
  • 福州做网站制作wordpress怎么设置关键词
  • 电子商务网站建设与管理课程评价网页制作图片轮播
  • 精品课程网站建设的背景及意义wordpress给文章分类
  • 昆明建设网站百度推广需要多少钱
  • 网站页面图片布局如何设计石家庄网站建设专家
  • 怎么做卡盟网站免费网站制作建设怎么收费
  • 下载软件的网站哪个好微信公众号程序
  • 营销型网站制作流程南昌个人网站制作怎么做
  • 网站没收录可以做推广吗无锡市网站
  • 档案信息网站开发利用少儿编程培训机构排名前十