企业微信-签名算法
package com.xc.xcspringboot.demo; import java.nio.charset.StandardCharsets; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.Formatter; /** * https://work.weixin.qq.com/api/doc/90000/90136/90506 * * @author tl19638 * @date 2020/8/18 */ public class 签名算法 { public static void main(String[] args) throws Exception { String genNonce = genNonce(); System.out.println("noncestr:" + genNonce); long timestamp = System.currentTimeMillis() / 1000; System.out.println("timestamp:" + timestamp); String sign = sign("https://www.sogou.com", genNonce, timestamp, "eaed581b260d754b1adf54d7875adc27"); System.out.println("sign:" + sign); } /** * 模拟生成随机 nonce 字符串 * * @return 随机字符串 */ private static String genNonce() { return bytesToHex(Long.toString(System.nanoTime()).getBytes(StandardCharsets.UTF_8)); } private static String bytesToHex(final byte[] hash) { Formatter formatter = new Formatter(); for (byte b : hash) { formatter.format("%02x", b); } String result = formatter.toString(); formatter.close(); return result; } private static String sign(String url, String nonce, Long timestamp, String ticket) throws Exception { String plain = String.format("jsapi_ticket=%s&noncestr=%s×tamp=%d&url=%s", ticket, nonce, timestamp, url); System.out.println("plain:" + plain); try { MessageDigest sha1 = MessageDigest.getInstance("SHA-1"); sha1.reset(); sha1.update(plain.getBytes(StandardCharsets.UTF_8)); return bytesToHex(sha1.digest()); } catch (NoSuchAlgorithmException e) { // throw new LeysenException("jsapi_ticket计算签名错误"); throw new Exception("jsapi_ticket计算签名错误"); } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2018-09-15 如何固定电脑ip地址