基于微信api Android程序签名+代码混淆

转载 2014年08月15日 14:20:28

微信开放平台真是独特啊!!!

微信的ap调用确实别新浪微博,人人,QQ互联这些方便很多,也不用判断绑定什么的,让人眼前一亮。但是到代码混淆这一步,我真瞎了,网上关于微信签名混淆资料讲的让人摸不着头脑,捣鼓了很久终于弄明白了。

第一步:

申请APP_ID,然后还需要填那个“应用类型” ---下载地址地址无关紧要;重点是应用签名,接下来会讲,先空着;包名,顾名思义就算你的Android应用的包名

第二步:

在程序中调用微信api,具体步骤,微信开放平台的android上手指南讲的很清楚。

第三步:

调试api,为了方便我们可以先用微信提供的demo。重点:1、找到demo根目录下的debug.keystore文件  2、选择Eclipse顶部菜单Window->Preferences,选择Android目录下的Build    3、指定Custom debugkeystore选项的路径为sdk demo工程目录中的debug.keystore文件  确定OK  (第一步保证了微信的SDK demo可以正常使用了)

第四步:

选择自己的程序,右键运行到手机,然后http://open.weixin.qq.com/download/sdk/gen_signature.apk

下载签名应用,在手机中运行,根据提示输入程序的包名获得一个apk签名字符串,最后将这个字符串填到第一步的应用签名栏处。保存OK  可以正常调试应用了  (这一步微信的SDK Demo都已经处理好的,所以我们自己应用需要单独处理)

第五步:

调试结束后,我们该签名打包了,顺便把代码混淆也做了。代码混淆配置步骤网上一搜就有。按照SDK说明在proguard.cfg中添加

-keep class com.tencent.mm.sdk.openapi.WXMediaMessage {*; }
-keep class com.tencent.mm.sdk.openapi.** implements com.tencent.mm.sdk.openapi.WXMediaMessage$IMediaObject {*; }
附上我的  proguard.cfg内容:
-optimizationpasses 2
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-ignorewarnings
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*

-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService

-keepclasseswithmembers class * {
    native ;
}

-keepclasseswithmembers class * {
    public (android.content.Context, android.util.AttributeSet);
}

-keepclasseswithmembers class * {
    public (android.content.Context, android.util.AttributeSet, int);
}

-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}

-keepclassmembers class * extends android.app.Activity {
  public void *(android.view.View); 
}

-keep class * implements android.os.Parcelable {
  public static final android.os.Parcelable$Creator *;
}

-keepclassmembers class **.R$* {
    *;
}

-keepclassmembers class * {
  public (org.json.JSONObject);
}
-keep public class com.android.mydemo.R$*{
    public static final int *;
}

-keepclassmembers class * implements java.io.Serializable {
    static final long serialVersionUID;
    private static final java.io.ObjectStreamField[] serialPersistentFields;
    private void writeObject(java.io.ObjectOutputStream);
    private void readObject(java.io.ObjectInputStream);
    java.lang.Object writeReplace();
    java.lang.Object readResolve();
}

-keep class android.net.http.** {*; }
-keep class android.webkit.** {*; }
-keep class com.weibo.net.** {*; }

-keep class com.tencent.mm.sdk.openapi.WXMediaMessage {*; }
-keep class com.tencent.mm.sdk.openapi.** implements com.tencent.mm.sdk.openapi.WXMediaMessage$IMediaObject {*; }

最后选择程序,右键--->android tools --->签名发布,按步骤生成一个签名keystore和一个经过签名的apk,安装该APK到手机,再重复第四步(包名改变),获得一个apk签名字符串,修改第一步中的第一步的应用签名栏,保存。  可能需要稍微等一段时间,微信服务器有时反应迟钝  大功告成!!!

第六步:

微信的签名验证真令人蛋疼,一起鄙视一下!

支持原创~

转发请附加链接,谢谢!

微信jsapi支付验证签名失败

微信jsapi支付验证签名失败
  • zjy660358
  • zjy660358
  • 2016年11月26日 16:24
  • 7294

微信小程序用户数据的签名验证和加解密

微信小程序的签名验证和加解密
  • zhang1992622
  • zhang1992622
  • 2017年03月15日 17:25
  • 2827

微信小程序支付开发爬坑攻略(支付签名验证失败)

第1个坑:微信支付的api密钥(签名需要的key参数) 商户中心(https://pay.weixin.qq.com/index.php/extend/employee) – API安全 – ...
  • menjilifu
  • menjilifu
  • 2017年12月02日 09:59
  • 1712

微信小程序md5加密算法封装及用法详解--微信小程序生成md5签名

解释: 微信小程序不让引入现成的库文件,于是自己封装一个md5加密算法的js 用途: 各种加密场景,比如生成md5签名(本文以生成md5签名为例) md5.js(目录: /utils/md5....
  • abs1004
  • abs1004
  • 2018年01月19日 11:43
  • 81

微信小程序支付开发笔记2--生成签名-统一下单-二次签名

用户选择商品发起购买请求,后端接收到请求后,先生成本地订单,以得到一个本地订单的商户订单号。同时从表中读取该用户的openID。 我是用一个对象pay来存统一下单需要传的参数,pay的字段如下(部分参...
  • qq_22158021
  • qq_22158021
  • 2017年11月29日 17:38
  • 1321

基于微信小程序开发的demo

先上开源地址: https://github.com/liujians/weapp 最近一直在研究微信小程序,跟随互联网新闻的热潮 从9月29日开发到现在,也算是把大部分API和组件...
  • sinat_17775997
  • sinat_17775997
  • 2016年10月19日 15:15
  • 2097

微信签名生成算法

工作笔记:MD5Util:private static String byteArrayToHexString(byte b[]) { StringBuffer resultSb = new St...
  • maple980326
  • maple980326
  • 2016年07月05日 08:47
  • 3402

微信小程序压缩实践

微信小程序压缩实践开发教程
  • qq_38125123
  • qq_38125123
  • 2017年07月05日 09:41
  • 1362

android studio 打包签名apk,完成微信和qq的的第三方分享功能

1》在运行程序的时候有的app的MD5 签名和 微信注册的不一样所以在分享的时候会出现闪退现象,怎么解决呢?就是要把当前运行的apk的MD5值和我们官网注册的app的值保持一致,获取打包签名的app值...
  • WangRain1
  • WangRain1
  • 2016年07月27日 12:25
  • 3335

微信小程序支付签名失败,错误的解决方法,小程序支付签名paySign开发demo

微信小程序支付开发, 其实这里的接口, 大部分跟微信公众号支付接口类似, 包括 1、 签名 2、 提交证书 3、 统一下单 4、 订单查询 5、 退...
  • towtotow
  • towtotow
  • 2018年01月13日 10:39
  • 226
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:基于微信api Android程序签名+代码混淆
举报原因:
原因补充:

(最多只允许输入30个字)