APP获取证书签名指纹
Android:
public static String getSignatureSHA1(Context context) {
String sign = null;
try {
// 通过包管理器获得指定包名包含签名的包信息
@SuppressLint("PackageManagerGetSignatures")
PackageInfo packageInfo = context.getPackageManager()
.getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES);
// 通过返回的包信息获得签名数组
Signature[] signatures = packageInfo.signatures;
sign = getSHA1FromSignature(signatures[].toByteArray());
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return sign;
}
iOS:
+ (NSString *)bundleSeedID {
NSDictionary *query = [NSDictionary dictionaryWithObjectsAndKeys:
(__bridge id)kSecClassGenericPassword, (__bridge id)kSecClass,
@"bundleSeedID", (__bridge id)kSecAttrAccount,
@"", (__bridge id)kSecAttrService,
(id)kCFBooleanTrue, (__bridge id)kSecReturnAttributes,
nil];
CFDictionaryRef result = nil;
OSStatus status = SecItemCopyMatching((__bridge CFDictionaryRef)query, (CFTypeRef *)&result);
if (status == errSecItemNotFound)
status = SecItemAdd((__bridge CFDictionaryRef)query, (CFTypeRef *)&result);
if (status != errSecSuccess)
return nil;
NSString *accessGroup = [(__bridge NSDictionary *)result objectForKey:(__bridge id)kSecAttrAccessGroup];
NSArray *components = [accessGroup componentsSeparatedByString:@"."];
NSString *bundleSeedID = [[components objectEnumerator] nextObject];
CFRelease(result);
return bundleSeedID;
}
关于bundleSeedID,即App ID Prefixes,通俗点是 app id 前缀。可以作为证书的指纹使用,详细请看官方文档:
https://developer.apple.com/library/archive/technotes/tn2311/_index.html
服务器通过记录该客服端的值,能够知晓当前app用的是什么证书签名。一定程度上可以避免原始包被改后,使用其它签名运行,至于具体的策略还是要结合多种其它手段。(譬如 bundle id 或是包名的校验,包体加密混淆,防hook的一些策略等)
APP获取证书签名指纹的更多相关文章
- 使用jadx反编译 调试“XX值得买”APP获取接口签名key(一)
闲来无事,想抓取一下"XX值得买"上排行榜的即时数据,按照通用方法 安装夜神模拟器 新增android 5.0版模拟器 安装xposed框架 安装JustTrustMe.apk 打 ...
- 勾勾街:一个专业的苹果ios app 自助打包的网站,免越狱,免证书签名
众所周知,苹果的APP开发是需要基于MAC环境的,而我们很多的开发者并没有这样的条件,如果单单为发布一款app就去买一台价格昂贵的MAC那成本就太高了! 就算你有一台MAC,也有能力自己开发出一款基于 ...
- [加密]openssl之数字证书签名,CA认证原理及详细操作
转自:http://blog.sina.com.cn/s/blog_cfee55a70102wn3h.html 1 公钥密码体系(Public-key Cryptography) 公钥密码体系,又称非 ...
- 获取证书以用于 Windows Azure 网站 (WAWS)
编辑人员注释:本文章由 Windows Azure 网站团队的项目经理 Erez Benari 撰写. 近年来,随着网络犯罪的上升,使用 SSL 保护网站逐渐成为一项备受追捧的功能,Windows A ...
- ionic app打包和签名
ionic app打包和签名 1.首先在项目根目录执行 ionic platform add android 生成Android平台. 2.配置应用签名:在根目录下执行以下命令 keytool - ...
- SHA256withRSA证书签名,私钥签名/公钥验签
证书签名 package test; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundE ...
- PowerShe 使用证书签名 ll脚本
1.创建自签名证书(如需要) PS C:\Windows\system32> New-SelfSignedCertificate -DnsName www.mycard.com -CertSto ...
- [置顶]
Android Studio apk打包以及获取apk签名信息
首先说下Android Studio 主要分为以下几步 填写你的签名的一些信息 (例如签名的文件名.省份.密码 别名 就是你比如叫xxx 但是别名是xx张三 认证年限就是apk过期默认是25年 其他就 ...
- app发布证书、真机调试证书、测试证书、推送证书详细过程
原文网址: http://www.cnblogs.com/cxbblog/p/4028159.html 一:发布证书 遵旨:哪个开发者的哪台电脑要发布哪个app (这句话可以多读几遍) 通过上边的遵旨 ...
随机推荐
- lombok 一个不错的小工具
(1)官方文档 Lombok features (2)Lombok Reduces Your Boilerplate Code (3)Lombok-Java代码自动生成 开发利器
- mui+vue+photoclip做APP头像裁剪上传
做APP由于项目需要,需要做用户头像上传的功能,头像上传包括拍照和相册选择图片进行上传,这里使用的技术是mui封装的plus,在进行图片裁剪的时候,使用的是photoclip来进行裁剪,由于个人在使用 ...
- yii---load怎么使用
在用YII进行二次开发的时候,看到登录方法有一个load的方法: public function actionLogin() { if (Yii::$app->request->isPos ...
- hdu2222 Keywords Search【AC自动机】
Keywords Search Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others ...
- JavaScript 包管理工具npm 和yarn 对比
- easyui datagrid加载数据和分页
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding=& ...
- session hijacking-php.ini
wamp->php.ini ; This option forces PHP to fetch and use a cookie for storing and maintaining; the ...
- 审核被拒绝。附近??Guideline 5.1.2
5. 1.2 Legal: Privacy - Data Use and Sharing Guideline 5.1.2 - Legal - Privacy - Data Use and Sharin ...
- 2018/04/02 每日一个Linux命令 之 新建/修改/删除群组
-- 新建群组 groupadd [群组名] -- 修改群组名称 groupmod [群组名] [新群组名] -n 修改组名 -g 修改组识别码 -- 删除群组 groupdel [删除的组名] --
- 2018/03/08 每日一学PHP 之 常量defind 和 const区别
常量defind 和 const区别 什么是常量? 如字面理解的,在脚本执行期间不可改变的的量. 定义一个常量应该注意的事项? 1:常量默认大小写敏感,错误的大小写不会被识别为常量. 2:常量只能是标 ...