签名

iOS RSA加解密签名和验证

自闭症网瘾萝莉.ら 提交于 2020-11-30 00:41:28
Pre:在公司负责了一个项目,需要用到iOSRSA验证签名的功能。后台给我的仅仅是一个公钥的字符串。经过起初的一段时间的挣扎,发现远远没有那么简单。iOS RSA是需要证书的,而java的后台只能给我一个公钥字符串。搜索了无数网页还是没找到能用的成型的代码。最后还是参考了下支付宝的SDK的签名机制,明白可以先把公钥字符串写入文件然后读取文件得到openssl 中的RSA结构体指针。现在精心整理了下iOS RSA使用openssll的加密,解密,签名和验证签名的实现。代码地址 https://github.com/HustBroventure/iOSRSAHandler 1. 生成 RSA 密钥 生成 RSA 私钥 openssl genrsa -out rsa_private_key.pem 1024 生成 RSA 公钥 openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem pem 文件可以直接文本编辑器打开 将 RSA 私钥转换成 PKCS8 格式 openssl pkcs8 -topk8 -inform PEM -in private_rsa.pem -outform PEM -nocrypt -out private_key.pem (后边一定要加 -out private_key.pem

OpenSSL 之 RSA 相关命令学习笔记

笑着哭i 提交于 2020-02-29 09:40:25
作者: Angus.Fenying < i.am.x.fenying@gmail.com > 日期: 2016-11-10 10:35 PM 本文介绍 OpenSSL 命令行进行 RSA 加密、解密、签名、验证的操作,但不涉及 RSA 算法原理解析,如有兴趣,可以阅读阮一峰的《RSA算法原理》。如果你只想知道 RSA 是什么,那么你只要记住: RSA 是一种加密算法,使用两个密钥,一个叫公钥,一个 叫私钥,使用公钥加密的密文只有使用私钥才可以解密,反之亦然。 Section 0: 生成随机文件 由于 OpenSSL 创建密钥文件是随机生成的,因此有必要为之提供一份随机数据源。 可以用 openssl 的 rand 命令创建一个 64MB 的随机文件,保存为文件 randSrc.bin 。 openssl rand -out ./randSrc.bin 67108864 还可以使用 -base64 或者 -hex 两个参数之一指定输出格式为 BASE64 或者 HEX。 Section 1: 生成一个密钥文件 小贴士: 根据目前的普遍需求,应当使用 AES256 为加密标准。 通常 RSA 私钥文件命名为 name.pem ,公钥文件名为 name_pub.pem 。 OpenSSL 生成的密钥文件默认是 PEM 格式的。 openssl genrsa \ -rand randSrc

linux 更换 软件源后 GPG错误

試著忘記壹切 提交于 2019-12-06 07:24:17
linux 更换 软件源后 G PG错误 http://my.oschina.net/emptytimespace/blog/83633 如文章【1】中提到: 1,对于DEBIAN系: 如果您的套件支援APT-KEY金鑰管理(例如Ubuntu 6.06或者之後的版),請先安裝DRBL的金鑰 (ID: 1024D/D7E8DF3A, Key fingerprint = F532 A131 65AF 2168 1634 DB1B 4000 9511 D7E8 DF3A),有兩個方式可以來安裝。 方法1: "wget -q http://drbl.nchc.org.tw/GPG-KEY-DRBL -O- | sudo apt-key add -" 。 方法2: 或是由key server下載,KeyID是D7E8DF3A,可以這樣執行"gpg --keyserver subkeys.pgp.net --recv-key D7E8DF3A",然後再執行"gpg -a --export D7E8DF3A | apt-key add -". 如法砲制,推荐使用上面方法1,下载发行版的GPG并添加金匙: wget -q http://.../Release.gpg | sudo apt-key add - 2,对 RedHat/Fedora/CentOS 系: RedHat/Fedora

Android:apk签名

夙愿已清 提交于 2019-12-03 20:26:46
一、android apk签名有几种方法? 1、利用jdk工具进行apk签名 2、利用Eclipse中的ADT对apk进行签名 二、每种签名方法具体怎么操作? 1、利用jdk工具进行签名: a、运行dos,cd到apk所在的目录,简称apk_dir b、生成签名文件 命令如下: apk_dir>keytool -genkey -alias signapk.keystore -keyalg RSA -validity 20000 -keystore signapk.keystore 运行结果如下: c、对apk文件进行签名 apk_dir>jarsigner -verbose -keystore signapk.keystore -signedjar new.apk Corner.apk signapk.keystore 运行结果如下: d、验证签名 apk_dir>jarsigner -verify new.apk jar 已验证。 备注:可能遇到的问题 1、在上面第二步如果提示:jarsigner 无法对jar进行签名:java.util.zip.ZipException:…… 很可能的原因是:这是因为默认给apk做了debug 签名,所以无法做新的签名,这时就可以点工程右键->Android Tools ->Export Unsigned Application Package

Android studio 申请签名,设置签名key位置 查看 sha1

时光怂恿深爱的人放手 提交于 2019-12-02 05:47:02
申请key Android studio 生成签名证书,以及使用签名打包APK Build-->Generate Signed APK...--> --> 选择Create new... --> --> 所有的pwd均忽略,无非就key文件的加密以及项目key key store path ---你可以文件存储位置 Alias ---别名,就是相当于给某一个项目使用 Vaildity--有效期 100即可 接下来无非是 你叫啥,你的公司是什么,所在城市 所在省份 国家所属代码中(86) 然后ok就会到创建KEY的界面。next---finsh然后就会自动签名了。最好完成后会弹出一个框--->点击 show in explorer 就会弹出签名好的apk所在的文件夹 接下来是修改签名文件位置: 有两种方式一种是自己手动去写gralde,另一种是直接采用android studio配置 手写gralde如下: android{ signingConfigs { config {// 配置名称 keyAlias '别名' keyPassword '密码' storeFile file('key位置') storePassword '密码' } } } android studio 配置 右键你的moudle-->Open Moudle Settings 或者从file-->Project

【转】android 安全机制

≡放荡痞女 提交于 2019-12-01 16:50:41
1 Android 安全机制概述 Android 是一个权限分离的系统 。 这是利用 Linux 已有的权限管理机制,通过为每一个 Application 分配不同的 uid 和 gid , 从而使得不同的 Application 之间的私有数据和访问( native 以及 java 层通过这种 sandbox 机制,都可以)达到隔离的目的 。 与此 同时, Android 还 在此基础上进行扩展,提供了 permission 机制,它主要是用来对 Application 可以执行的某些具体操作进行权限细分和访问控制,同时提供了 per-URI permission 机制,用来提供对某些特定的数据块进行 ad-hoc 方式的访问。 1.1 uid 、 gid 、 gids Android 的权限分离的基础是建立在 Linux 已有的 uid 、 gid 、 gids 基础上的 。 UID 。 Android 在 安装一个应用程序,就会为 它 分配一个 uid (参考 PackageManagerService 中的 newUserLP 实现)。其中普通 A ndroid 应用程序的 uid 是从 10000 开始分配 (参见 Process.FIRST_APPLICATION_UID ), 10000 以下是系统进程的 uid 。 GID 。对 于普通应用程序来说, gid 等于

Android应用程序签名(官方文档中文版)(上)

生来就可爱ヽ(ⅴ<●) 提交于 2019-11-27 09:56:04
概览 Android要求所有已安装的应用程序都使用数字证书做数字签名, 数字证书的私钥由应用开发者持有. Android使用证书作为标识应用程序作者的一种方式, 并在应用程序之间建立信任关系. 证书并不用来控制用户能否安装哪个应用. 证书不需要由证书认证中心签名: 完全可以使用自签名证书(self-signed certificates). 理解Android应用签名的要点有: 所有应用程序都必须签名. 系统将不会安装一个没签名的应用. 可以用自签名证书来签名应用程序. 并不需要证书认证中心. 当准备好向最终用户发布应用时, 必须用一个合适的私钥对其签名. 不能发布用SDK工具生成的debug key签名的应用. 系统仅在安装时检查签名者的证书的过期时间. 如果应用程序签名者的证书在安装后的时间过期, 该应用将仍然正常工作. 可以使用标准工具 — Keytool 和 Jarsigner — 生成key并为应用的 .apk 文件签名. 当应用签名完成, 使用 zipalign 工具来优化最终的 APK 包. 没有正确签名的应用, Android系统不会安装或运行. 此规则适用于在任何地方运行的Android系统, 不管是在模拟器还是真实设备上. 因为这个原因, 在真机或模拟器上运行或者调试应用前, 必须为其设置好签名. 在调试期间, Androi SDK工具协助你为应用做好签名工作.

android应用实现重启系统+签名

青春壹個敷衍的年華 提交于 2019-11-27 09:55:50
1.在AndroidManifest.xml文件的manifest标签中加入一条android:sharedUserId="android.uid.system" <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.ipanel.update" android:versionCode="1" android:versionName="1.0" android:sharedUserId="android.uid.system" > <uses-sdk android:minSdkVersion="9" android:targetSdkVersion="15" /> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> <application android:icon="@drawable/ic

android签名机制(3)——如何制作签名

為{幸葍}努か 提交于 2019-11-26 21:53:50
一、 制作android签名公钥/密钥 1. 生成长度为2048位的RSA私钥 openssl genrsa -3 -out test.pem 2048 2. 生成x509格式的公钥证书 openssl req -new -x509 -key test.pem -out test.x509.pem -days 10000 3. 生成符合PKCS8标注的私钥文件 openssl pkcs8 -in test.pem -topk8 -outform DER -out test.pk8 -nocrypt 二、系统平台签名转eclipse签名 1.android 源码目录build\target\product\security 取platform.pk8 platform.x509.pem放到一个目录下 E:\sign\convert_keystore>ls platform.pk8 platform.x509.pem 2.把pkcs8格式的私钥转换成pkcs12格式: E:\sign\convert_keystore>openssl pkcs8 -in platform.pk8 -inform DER -outform PEM -out shared.priv.pem -nocrypt E:\sign\convert_keystore>ls shared.priv.pem