十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
利用 Android KeyStore System,您可以在容器中存储加密密钥,从而提高从设备中提取密钥的难度。在密钥进入密钥库后,可以将它们用于加密操作,而密钥材料仍不可导出。此外,它提供了密钥使用的时间和方式限制措施,例如要求进行用户身份验证才能使用密钥,或者限制为只能在某些加密模式中使用。
为前锋等地区用户提供了全套网页设计制作服务,及前锋网站建设行业解决方案。主营业务为做网站、网站建设、前锋网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
密钥库系统由 KeyChain API 以及在 Android 4.3(API 级别 18)中引入的 Android 密钥库提供程序功能使用。本文说明了何时以及如何使用 Android 密钥库提供程序。
1、 存储密匙:Android提供的这个KeyStore最大的作用就是不需要开发者去维护这个密匙的存储问题,相比起存储在用户的数据空间或者是外部存储器都更加安全。注意的是这个密匙随着用户清除数据或者卸载应用都会被清除掉。
2、得益于Android独立的一套密匙库系统,可以提高安全性
Android 密钥库系统可以保护密钥材料免遭未经授权的使用。首先,Android 密钥库可以防止从应用进程和 Android 设备中整体提取密钥材料,从而避免了在 Android 设备之外以未经授权的方式使用密钥材料。其次,Android 密钥库可以让应用指定密钥的授权使用方式,并在应用进程之外强制实施这些限制,从而避免了在 Android 设备上以未经授权的方式使用密钥材料。
Android 密钥库密钥使用两项安全措施来避免密钥材料被提取:
为了避免在 Android 设备上以未经授权的方式使用密钥材料,在生成或导入密钥时 Android 密钥库会让应用指定密钥的授权使用方式。一旦生成或导入密钥,其授权将无法更改。然后,每次使用密钥时,都会由 Android 密钥库强制执行授权。这是一项高级安全功能,通常仅用于有以下要求的情形:在生成/导入密钥后(而不是之前或当中),应用进程受到攻击不会导致密钥以未经授权的方式使用。
支持的密钥使用授权可归为以下几个类别:
作为一项额外的安全措施,对于密钥材料位于安全硬件内部的密钥(请参阅 KeyInfo.isInsideSecurityHardware()),某些密钥使用授权可能由安全硬件实施,具体取决于 Android 设备。加密和用户身份验证授权可能由安全硬件实施。由于安全硬件一般不具备独立的安全实时时钟,时间有效性间隔授权不可能由其实施。
您可以使用 KeyInfo.isUserAuthenticationRequirementEnforcedBySecureHardware() 查询密钥的用户身份验证授权是否由安全硬件实施。
在需要系统级凭据时请使用 KeyChain API。在应用通过 KeyChain API 请求使用任何凭据时,用户需要通过系统提供的 UI 选择应用可以访问已安装的哪些凭据。因此,在用户同意的情况下多个应用可以使用同一套凭据。
使用 Android 密钥库提供程序让各个应用存储自己的凭据,并且只允许应用自身访问。这样,应用可以管理仅能由自己使用的凭据,同时又可以提供等同于 KeyChain API 为系统级凭据提供的安全优势。这一方法不需要用户选择凭据。
要使用此功能,请使用标准的 KeyStore 和 KeyPairGenerator 或 KeyGenerator 类,以及在 Android 4.3(API 级别 18)中引入的 AndroidKeyStore 提供程序。
AndroidKeyStore 注册为 KeyStore 类型以用于 KeyStore.getInstance(type) 方法,而在用于 KeyPairGenerator.getInstance(algorithm, provider) 和 KeyGenerator.getInstance(algorithm, provider) 方法时则注册为提供程序。
生成新的 PrivateKey 要求您同时指定自签署证书具备的初始 X.509 属性。之后,您可以使用 KeyStore.setKeyEntry 将证书替换为由证书颁发机构 (CA) 签署的证书。
要生成密钥,请使用 KeyPairGenerator 和 KeyPairGeneratorSpec:
要生成密钥,请使用 KeyGenerator 和 KeyGenParameterSpec。
AndroidKeyStore 提供程序的使用通过所有的标准 KeyStore API 加以实现。
通过调用 aliases() 方法列出密钥库中的条目:
通过从密钥库提取 KeyStore.Entry 并使用 Signature API(例如 sign())签署数据:
类似地,请使用 verify(byte[]) 方法验证数据:
生成密钥或将密钥导入到 AndroidKeyStore 时,您可以指定密钥仅授权给经过身份验证的用户使用。用户使用安全锁定屏幕凭据(模式/PIN/密码、指纹)的子集进行身份验证。
这是一项高级安全功能,通常仅用于有以下要求的情形:在生成/导入密钥后(而不是之前或当中),应用进程受到攻击不会导致密钥被未经身份验证的用户使用。
如果密钥仅授权给经过身份验证的用户使用,可以将其配置为以下列两种模式之一运行:
第一种利用 java jdk 来生成
第二种. 利用eclipse 来生成
a.
进入 cmd 命令行提示符
进入到jdk的bin目录(如图:)
如图进入java jdk的bin目录后,输入:
keytool -genkey -alias android.keystore -keyalg RSA -validity 20000 -keystore android.keystore -alias android.keystore 回车
然后接下来就是按照提示输入(如图:)
完成上面的步骤后, 该 .keystore文件就已经生成了, 在 bin目录下
说明: android.keystore 是.keystore文件的名称, 这里可以根据需要设定,
-validity 是该文件的有效期时间
密钥口令就是以后签名时需要填写的Password
注意: 如果生成不成功,可能是因为没有管理员权限,用需要以管理员身份生成.keystore文件
b.使用Eclipse 来生成一个keysotre文件
1. 在eclipse中 选择一个Android 工程, 然后"右键" -- Android Tools --Export Signed Application Package--Create new keystore
说明:上图的Location是要生成的keystore文件的位置,Password是keystore文件的密钥
2.接下来还是和命令提示符里一样的填写相关信息
注意: 一定要记住输入的密码
想要使用高德地图就必须要申请一个KEY,这没有原因,这就是高德硬性规定的。
现在我就用最通俗的语言,最严谨的思路跟大家一起探究怎么获取这个钥匙,以及相关的注意事项
step
1、
当然是先申请成为高德开发者了(省略......这都不会那真是可以右转德玛西亚了)
step
2、进入到自己的账号呢,右上角会有一个控制台的小按钮,点击进入控制台。中间有个获取KEY有木有?!好了,本课程到此结束,谢谢观赏
step
3、当你点击【获取KEY】之后就会出现一下界面了,依次输入应用名称、绑定的服务、同意使用条款。
step
4、当点击到绑定服务就会出现上面这个界面,输入发布版的安全码、调试版的安全码和package,package很简单就是manifest里面的package,但是SHA1是个什么鬼?该怎么获取呢?
step
5、获取SHA1之Eclipse和AS通用方法:【点这里】,其中需要注意的是:在发布正式版本的时候要把自己生成的签名key放在C:\Users\Administrator\.android
下才可以
使用命令行即可。
复制代码
cd C:\Android\
"C:\Program Files\Java\jdk1.6.0_16\bin\keytool.exe" -genkey -v -keystore android-release-key.keystore -alias androidreleasekey -keyalg RSA --validity 10000
回答以下问题
复制代码
Enter keystore password: -- 设置keystore密码-必须至少6个字符
What is your first and last name?
[Unknown]: -- 输入你的名字
What is the name of your organizational unit?
[Unknown]: -- 组织单位, 可以忽略
What is the name of your organization?
[Unknown]: -- 组织, 可以忽略
What is the name of your City or Locality?
[Unknown]: -- 城市
What is the name of your State or Province?
[Unknown]: -- 省份
What is the two-letter country code for this unit?
[Unknown]: CN -- 国家
Is CN=ipod4g, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=CN correct?
[no]: yes -- 输入 yes 确认
Generating 1,024 bit RSA key pair and self-signed certificate (SHA1withRSA) with a validity of 10,000 days
for: CN=ipod4g, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=CN
Enter key password for
(RETURN if same as keystore password): -- 设置key密码,如与keystore密码相同,回车
[Storing android-release-key.keystore]
android key
安卓键
双语例句
1
Firstly, further analysis of Android system architecture and platform features, and then to introduce Android system constitute key concepts such as Activity, intent and so on.
本文首先深入分析Android系统的平台特征和体系结构,详尽地介绍Android系统程序构成中的关键概念如Activity、Intent等。
查看Androidkeystore信息方法如下:1、打开CMD命令行进入本机安装的jdk或jre下的bin目录.2、命令行输入:keytool-list-v-keystoreC:\Users\Desktop\browser\debug.keystore-storepassandroid3、这里查看的是androidadt默认带的debug版keystore,密码是:android