💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
- Gogs - ## 一款极易搭建的自助 Git 服务 - [Minio对象存储服务器](https://www.jianshu.com/p/68ac0477291d) --- - [https://blog.csdn.net/xz\_studying/article/details/80314111](https://blog.csdn.net/xz_studying/article/details/80314111) 核对加密方式, 密钥存储格式 - 密钥根据解析方式不同, 有的需要 -------beginkey, 有的不需要 > RAS加密 - 需要加密和解密 - 客户端发消息给服务器时,用公钥加密 - 服务端发消息给客户端用私钥加密 - RAS签名 - 不需要解密, 但需要验证 ``` (MD5WithRSA 算法) 签名算法为直接把请求数据中的所有元素(除 sign 本身)按照"key 值=value 值"的格式 拼接起来,并且把这些拼接以后的元素按首字母升序排列顺序,最后以"&"字符连接起来 得到签名串,使用私钥对签名串进行 RSA 签名 ``` - [https://www.jianshu.com/p/94cd6d5be142](https://www.jianshu.com/p/94cd6d5be142) - [https://www.cnblogs.com/pcheng/p/9629621.html](https://www.cnblogs.com/pcheng/p/9629621.html) - 如果是“RSA加密”的话,就无所谓规范化处理了,源串是什么,加密后再解密出来是一样的。如果是“RSA签名”的话,当然双方要约定好“规范化”的方式,这样才能确保验签通过。 - RSA 签名 需要进行 Hash ``` package main import ( "fmt" "net/url" "strings" ) func main() { key := "platformCode=BLLC9M3Q2&seq=1559817133443&timestamp=1559817133443&pageNo=1&pageSize=10" keySlice := strings.Split(key, "&") query := url.Values{} for _, value := range keySlice { vSlice := strings.Split(value, "=") query.Add(vSlice[0], vSlice[1]) } fmt.Println(query.Encode()) } ``` ~~~ bTime := strconv.FormatInt(order.CreateTime, 10) cTime := time.Now().Unix() bTime2, _ := time.ParseInLocation("20060102150405", bTime, time.Local) ~~~