invalid signature错误怎么解决
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了invalid signature错误怎么解决相关的知识,希望对你有一定的参考价值。
1.首先确认签名算法是正确的,到http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign页面工具进行校验。也就是你自己后台生成签名要和微信校验算法生成的签名一致才可以。2.还有一个笔者曾遇到的坑,看到微信SDK上说token和ticket需要在服务器做缓存,有效期是7200秒,写代码的时候没有仔细思索,导致把生成的签名也给缓存了,用几次就报invalid signature,后来仔细读文档之后,果断改为每次打开页面都重新生成签名即可,token和ticket依然被缓存,但timestamp是变化的,因此每次签名也是不同的。
3.参与签名的字段包括有效的 jsapi_ticket(获取方式详见微信JSSDK文档), noncestr (随机字符串,由开发者随机生成),timestamp (由开发者生成的当前时间戳), url(当前网页的URL,不包含#及其后面部分。
4.特别注意:你在利用参数生成签名的时候,要对所有待签名参数按照字段名的 ASCII 码从小到大排序(字典序)后,使用 URL 键值对的格式(即key1=value1&key2=value2…)拼接成字符串 string1。这里需要注意的是所有参数名均为小写字符。
5.确认config中nonceStr(js中驼峰标准大写S), timestamp与用以签名中的对应noncestr, timestamp一致。
6.确认url是页面完整的url(请在当前页面alert(location.href.split(\'#\')[0])确认),包括\'http(s)://\'部分,以及\'?\'后面的GET参数部分,但不包括\'#\'hash后面的部分。因为页面一旦分享,微信客户端会在你的链接末尾加入其它参数,如果不是动态获取当前链接,将导致分享后的页面签名失败。 参考技术A 重装系统,出现Invalid Signature detected .._百度经验(解决方法):
https://jingyan.baidu.com/article/4853e1e55679491909f726f4.html本回答被提问者采纳 参考技术B 确认签名算法正确,可用 http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign 页面工具进行校验。
macOS下加载动态库dylib报"code signature invalid"错误的解决办法
一、现象描述
在macOS上搞开发也有一段时间了,也积攒了一定的经验。然而,今天在替换工程中的一个动态库时还是碰到了一个问题。原来工程中用的是一个静态库,调试时发现有问题就把它替换成了动态库。这本来没什么值得一说,可工程编译完后打包测试时发现,不论怎么搞程序都加载不起来。毫无疑问,这是新替换的动态库带来的问题。
二、解决办法
于是尝试打开日志文件看看有什么发现吧:
根据上面的日志文件提示,动态库加载的时候失败了。原因为:code signature invalid。这就奇了个怪了,以前都没碰到类似的问题啊。而且这个动态库还是从其他工程中拷贝过来的,从来没有发现问题啊。既然提示签名失效,那先使用命令看看签名状态再说:
可以看到,libexpat.1.dylib这个文件的签名确实是失效了。可能是被修改了或者其他原因而导致的。而libexiv2.14.dylib这个文件则没有签名。既然动态库的代码签名是无效的,那么我们就有了一个大胆的想法,尝试给动态库重新签名好了:
所有相关的依赖库都签好名,重新打包测试,问题果然消失了。不过,为啥在另外一个工程里面使用时完美运行,在这个工程里面时却报代码签名失效,这点倒是没有想通。
三、参考链接
1. https://forum.unity3d.com/threads/invalid-signature-for-submitted-mac-app.120263/
以上是关于invalid signature错误怎么解决的主要内容,如果未能解决你的问题,请参考以下文章
vue 单页面(SPA) history模式调用微信jssdk 跳转后偶尔 "invalid signature"错误解决方案
微信开发配置JSSDK,注入权限验证,以及invalid signature签名错误解决
invalid LOC header (bad signature)
maven提示invalid LOC header (bad signature)的解决办法