android平台开发下 密钥管理
在release模式下编译程序,在Package面版上按project右键,选择Android Tools>Export Application Package.或者你可以点击Manifest Editor, overview 页面上的“Exporting the unsigned .apk”连接 ,导出未签名apk文件。保存.apk文件之后,用Jarsigner及你自己的密钥给apk文件签名 ,如果没有密钥, 你可以用Keystore创建密钥和密锁。如果已经有一个密钥了,如公共密钥,就可以给.apk文件签名了。
Android程序的签名和Symbian类似都可以自签名(Self-signed),但是在Android平台中证书初期还显得形同虚设,平时开发时通过ADB接口上传的程序会自动被签有Debug权限的程序。需要签名验证在上传程序到Android Market上时大家都已经发现这个问题了。Android signed制作方法
首先在Android开发时没有安装JDK的网友在Sun官方网站下载JDKhttp://www.java.net/download/jdk ... 6-p-12_sep_2008.exe,其实仅需要中的Keytool和Jarsigner。
详细的签名步骤:
第一步
C:\Program Files\Java\jdk1.6.0_10\bin>keytool -genkey -alias android123.keystore
-keyalg RSA -validity 20000 -keystore android123.keystore
输入keystore密码:[密码不回显]
再次输入新密码:[密码不回显]
您的名字与姓氏是什么?
[Unknown]: android123
您的组织单位名称是什么?
[Unknown]: www.android123.com.cn
您的组织名称是什么?
[Unknown]: www.android123.com.cn
您的组织名称是什么?
[Unknown]: www.android123.com.cn
您所在的城市或区域名称是什么?
[Unknown]: New York
您所在的州或省份名称是什么?
[Unknown]: New York
该单位的两字母国家代码是什么
[Unknown]: CN
CN=android123, OU=www.android123.com.cn, O=www.android123.com.cn, L=New York, ST
=New York, C=CN 正确吗?
[否]: Y
输入<android123.keystore>的主密码
(如果和 keystore 密码相同,按回车):
其中参数-validity为证书有效天数,这里我们写的大些20000天。还有在输入密码时没有回显,只管输入就可以了,一般位数建议使用20位,最后需要记下来后面还要用,整个过程如图:
接下来我们开始为apk文件签名了。
第二步
执行下面这句jarsigner -verbose -keystore android123.keystore -signedjar android123_signed.apk android123.apk android123.keystore 就可以生辰签名的apk文件,这里输入文件android123.apk,最终生成android123_signed.apk为Android签名后的APK执行文件。下面提示输入的密码和keytool输入的一样就行了,如图:
有关Android程序发布和签名可以查看SDK中 http://code.google.com/android/devel/sign-publish.html 一文.
附上keytool参数以及jarsigner参数:
keytool用法:
-certreq [-v] [-protected]
[-alias <别名>] [-sigalg <sigalg>]
[-file <csr_file>] [-keypass <密钥库口令>]
[-keystore <密钥库>] [-storepass <存储库口令>]
[-storetype <存储类型>] [-providername <名称>]
[-providerclass <提供方类名称> [-providerarg <参数>]] ...
[-providerpath <路径列表>]
-changealias [-v] [-protected] -alias <别名> -destalias <目标别名>
[-keypass <密钥库口令>]
[-keystore <密钥库>] [-storepass <存储库口令>]
[-storetype <存储类型>] [-providername <名称>]
[-providerclass <提供方类名称> [-providerarg <参数>]] ...
[-providerpath <路径列表>]
-delete [-v] [-protected] -alias <别名>
[-keystore <密钥库>] [-storepass <存储库口令>]
[-storetype <存储类型>] [-providername <名称>]
[-providerclass <提供方类名称> [-providerarg <参数>]] ...
[-providerpath <路径列表>]
-exportcert [-v] [-rfc] [-protected]
[-alias <别名>] [-file <认证文件>]
[-keystore <密钥库>] [-storepass <存储库口令>]
[-storetype <存储类型>] [-providername <名称>]
[-providerclass <提供方类名称> [-providerarg <参数>]] ...
[-providerpath <路径列表>]
-genkeypair [-v] [-protected]
[-alias <别名>]
[-keyalg <keyalg>] [-keysize <密钥大小>]
[-sigalg <sigalg>] [-dname <dname>]
[-validity <valDays>] [-keypass <密钥库口令>]
[-keystore <密钥库>] [-storepass <存储库口令>]
[-storetype <存储类型>] [-providername <名称>]
[-providerclass <提供方类名称> [-providerarg <参数>]] ...
[-providerpath <路径列表>]
-genseckey [-v] [-protected]
[-alias <别名>] [-keypass <密钥库口令>]
[-keyalg <keyalg>] [-keysize <密钥大小>]
[-keystore <密钥库>] [-storepass <存储库口令>]
[-storetype <存储类型>] [-providername <名称>]
[-providerclass <提供方类名称> [-providerarg <参数>]] ...
[-providerpath <路径列表>]
-help
-importcert [-v] [-noprompt] [-trustcacerts] [-protected]
[-alias <别名>]
[-file <认证文件>] [-keypass <密钥库口令>]
[-keystore <密钥库>] [-storepass <存储库口令>]
[-storetype <存储类型>] [-providername <名称>]
[-providerclass <提供方类名称> [-providerarg <参数>]] ...
[-providerpath <路径列表>]
-importkeystore [-v]
[-srckeystore <源密钥库>] [-destkeystore <目标密钥库>]
[-srcstoretype <源存储类型>] [-deststoretype <目标存储类型>]
[-srcstorepass <源存储库口令>] [-deststorepass <目标存储库口令>]
[-srcprotected] [-destprotected]
[-srcprovidername <源提供方名称>]
[-destprovidername <目标提供方名称>]
[-srcalias <源别名> [-destalias <目标别名>]
[-srckeypass <源密钥库口令>] [-destkeypass <目标密钥库口令>]]
[-noprompt]
[-providerclass <提供方类名称> [-providerarg <参数>]] ...
[-providerpath <路径列表>]
-keypasswd [-v] [-alias <别名>]
[-keypass <旧密钥库口令>] [-new <新密钥库口令>]
[-keystore <密钥库>] [-storepass <存储库口令>]
[-storetype <存储类型>] [-providername <名称>]
[-providerclass <提供方类名称> [-providerarg <参数>]] ...
[-providerpath <路径列表>]
-list [-v | -rfc] [-protected]
[-alias <别名>]
[-keystore <密钥库>] [-storepass <存储库口令>]
[-storetype <存储类型>] [-providername <名称>]
[-providerclass <提供方类名称> [-providerarg <参数>]] ...
[-providerpath <路径列表>]
-printcert [-v] [-file <认证文件>]
-storepasswd [-v] [-new <新存储库口令>]
[-keystore <密钥库>] [-storepass <存储库口令>]
[-storetype <存储类型>] [-providername <名称>]
[-providerclass <提供方类名称> [-providerarg <参数>]] ...
[-providerpath <路径列表>]
jarsigner用法: [选项] jar 文件别名
jarsigner -verify [选项] jar 文件
[-keystore <url>] 密钥库位置
[-storepass <口令>] 用于密钥库完整性的口令
[-storetype <类型>] 密钥库类型
[-keypass <口令>] 专用密钥的口令(如果不同)
[-sigfile <文件>] .SF/.DSA 文件的名称
[-signedjar <文件>] 已签名的 JAR 文件的名称
[-digestalg <算法>] 摘要算法的名称
[-sigalg <算法>] 签名算法的名称
[-verify] 验证已签名的 JAR 文件
[-verbose] 签名/验证时输出详细信息
[-certs] 输出详细信息和验证时显示证书
[-tsa <url>] 时间戳机构的位置
[-tsacert <别名>] 时间戳机构的公共密钥证书
[-altsigner <类>] 替代的签名机制的类名
[-altsignerpath <路径列表>] 替代的签名机制的位置
[-internalsf] 在签名块内包含 .SF 文件
[-sectionsonly] 不计算整个清单的散列
[-protected] 密钥库已保护验证路径
[-providerName <名称>] 提供者名称
[-providerClass <类> 加密服务提供者的名称
[-providerArg <参数>]] ... 主类文件和构造函数参数
昵称:狂飞
QQ:18670340
MSN:zhaojun1717@hotmail.com
注意事项:本文均为作者个人编写如果纰漏
请给予指出,转载请标明出处;
分享到:
相关推荐
基于多云存储的Android密钥管理技术.pdf
android-keystore-recovery, 恢复丢失的Android密钥库密码的工具 请注意,这里自述文件是针对最新快照版本更新的... Android密钥库恢复这个项目旨在解决( Android ) 开发人员在管理 java keystore(s) 时遇到的"忘记密码
一个工具,用于管理Android的不同API上的密钥生成,密钥存储和加密
Scytale一种用于在Android的不同API上管理密钥生成,密钥存储和加密的工具。 如您所知,Android提供了API来使用仅从API 18存储在系统中的密钥库。他们引入了AndroidKey Scytale一种工具,用于管理Android的不同API上...
用于 otoh.io 社交密钥管理的 Android 客户端。 在了解更多信息。 这现在很难构建。 在接下来的几天里,它应该会变得更容易。 请尽快回来查看,如果您迫不及待,请发送电子邮件至 。 图书馆要求 你需要一些来自罐子...
AndroidStudio由于使用了gradle的进行项目构建,使我们开发app方便很多,今天我就给大家列出几点是用gradle的方便之处。 一、AndroidStudio Gradle第三依赖统一管理 二、AndroidStudio Gradle基于友盟的多渠道打包 ...
他还是一位资深的Java软件开发工程师和Android/iOS移动应用开发工程师,活跃于CocoaChina、开源中国、CSDN等社区,CSDN博客专家,在CSDN博客撰写了系列微信公众平台二次开发的教程,深受欢迎并被广泛传播,也因此...
第1章 Android计算平台简介 1.1 面向新PC的全新平台 1.2 Android的历史 1.3 Dalvik VM剖析 1.4 理解Android软件栈 1.5 使用Android SDK开发最终用户应用程序 1.5.1 Android模拟器 1.5.2 ...
最近项目需要使用到指纹识别的功能,查阅了相关资料后,整理成此文。...上述两种开发场景的实现大同小异,主要区别在于加密过程中密钥的创建和使用,一般来说,纯本地的使用指纹识别功能,只需要对称加密
第1章 Android计算平台简介 1.1 面向新PC的全新平台 1.2 Android的历史 1.3 Dalvik VM剖析 1.4 理解Android软件栈 1.5 使用Android SDK开发最终用户应用程序 1.5.1 Android模拟器 1.5.2 ...
GPDroid-NFC -- 使用 Android NFC API 的全球平台卡管理工具 此 Android 应用程序旨在管理符合 GlobalPlatform 的非接触式智能卡上的小程序。 您可以通过 NFC 在非接触式智能卡上安装和删除小程序。 此外,您可以列...
开发工具选择Android studio 3.5.2。 安卓的应用架构选择MVC模式,这也是市面上常用的软件系统模式,它将软件系统分为三部分。 模型(Model):存储系统的中心数据。 视图(View):产生一个或多个视图,将其中的信息...
一、概述 这一章先来点有意思的百度地图应用示例,然后再分章详细介绍用C#开发Android App的各种基本技术。...打开网页后,选择【开发】à【Andoid开发】下的第1项“Android地图SDK”,单击该网页中的【相关下
密钥管理 导入私钥 导入EOS私钥后,将解析EOS公钥对应项,并在AndroidKeyStore中创建新的RSA KeyPair,将base58 EOS公钥用作此新RSA KeyPair的别名。 AndroidKeyStore中包含的KeyPairs只能由创建它们的应用程
HKBook Android应用程序 这是一个类似于Goodreads应用程序的学校项目。 该应用程序可帮助用户从...在BookRequestHelper.java中输入Goodreads开发人员密钥 在Firebase上创建一个项目并连接到该项目 编译应用 应用的照片
我可以通过您的 LocalSocial 开发人员帐户管理所有密钥。 将您的应用程序的正确值添加到“app/src/main/res/values/ls_config_strings.xml”中。 从命令行构建 ./gradlew assembleDebug 从 Android Studio 导入和...
探索应用 这个应用程式可让您在Android上浏览和预览您的空间。 它与API 14或更高版本兼容,并在下作为开源。 快速介绍: ...Google Play设置Google Maps Android API V2要求您创建一个API密钥,该密钥与您用来
Udacity Android开发人员纳米学位计划-Capstone项目所有漫画爱好者的帮手! 该应用程序包含许多功能,可以帮助用户管理其个人漫画收藏,浏览最新出版的发行并跟踪所有喜欢的书的发行日期。 Comicser还具有内置的搜索...
适用于Linux,BSD,Android,Solaris和OSX的类似于SSH的强加密远程管理外壳CRypted Admin Shell支持IPv6的轻量,直接和可扩展协议,使用TLS 1.2+作为中间层安全中间层传输其身份验证机制涉及服务器主机密钥进入身份...