`
zhangyi0618
  • 浏览: 62045 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

keystore存储对称密钥(摘)

 
阅读更多
keystore是个密钥存储库,我们经常用他来存储非对称密钥,但有时我们也需要它来存储一些对称密钥。

public void createKeyStore() {

try {

KeyGenerator keyGen = KeyGenerator.getInstance("DES");

SecureRandom random = SecureRandom.getInstance("SHA1PRNG", "SUN");

keyGen.init(56, random);

SecretKey secretKey = keyGen.generateKey();

KeyStore ks = KeyStore.getInstance("jceks");

char password[] = {'c', 'h', 'a', 'n', 'g', 'e','i','t' };

// Create an empty keystore

ks.load(null, password);

KeyStore.SecretKeyEntry skEntry = new KeyStore.SecretKeyEntry(secretKey);

ks.setEntry("myKey", skEntry, new KeyStore.PasswordProtection(password));

// store away the keystore

java.io.FileOutputStream fos =


new java.io.FileOutputStream("mystore");

ks.store(fos, password);

fos.close();


} catch (NoSuchAlgorithmException nsaex) {

nsaex.printStackTrace(System.err);

} catch (NoSuchProviderException nspex) {

nspex.printStackTrace(System.err);

} catch (KeyStoreException ksex) {


ksex.printStackTrace(System.err);


} catch (CertificateException cex) {

cex.printStackTrace(System.err);

} catch (IOException ioex) {

ioex.printStackTrace(System.err);


}


}



上面的例子是存一个DES密钥。


需要注意的就是这个keystore的类型,必须是jceks,


之前我就是使用默认的jks,导致报错。
分享到:
评论

相关推荐

    Android使用KeyStore对数据进行加密的示例代码

    Android提供了多种加密和安全机制,其中之一就是使用KeyStore系统来存储和管理加密密钥。KeyStore是一个系统级的服务,它允许应用程序安全地存储私钥、公钥和其他认证信息。在这个场景中,我们将深入探讨如何在...

    Android API之KeyStore 测试源代码

    对于非对称密钥,公钥可以被分享,而私钥则需要保持私密。 6. 测试源代码分析: "Test"文件可能包含了创建、存储、加载和使用KeyStore的测试代码。这些测试可能包括: - 初始化KeyStore并加载。 - 生成不同类型...

    android平台开发下 密钥管理

    7. **安全最佳实践**:在实际开发中,应遵循一些最佳实践,如定期更新密钥,不直接在代码中硬编码密钥,使用硬件安全模块(HSM)如果设备支持,以及在可能的情况下使用非对称密钥进行数据加密。 8. **调试与测试**:...

    Java中的Blowfish对称密钥加密算法类和实例.7z

    Java中的Blowfish对称密钥加密算法是一种广泛使用的数据加密技术,特别是在软件开发中,用于保护敏感信息的安全。Blowfish是由 Bruce Schneier 在1993年设计的一种块密码,它以其高效和安全性著称。在Java中,我们...

    Android-用于管理Android的不同API上的密钥生成密钥存储和加密

    KeyStore允许开发者生成、存储并使用非对称密钥对(如RSA或EC)以及对称密钥,确保这些密钥不会以明文形式存在内存中。这样可以防止恶意软件窃取敏感信息,因为即使应用被反编译,密钥也是无法直接获取的。 接着,...

    Java实现信息安全技术 密钥分配

    本文将深入探讨Java如何实现密钥分配,以及如何利用对称密钥和非对称密钥(公钥和私钥)来保障通信的安全性。 首先,我们要理解密钥分配的基本概念。在通信过程中,对称密钥用于加密和解密同一数据,效率高但不适合...

    通过秘密键/证明书/CA证明书生成keystore文件

    keystore是存储密钥、证书和私钥对的安全容器,常用于HTTPS通信、SSL/TLS配置以及数字签名等场景。这个过程涉及到几个关键概念: 1. 秘密键(Secret Key):秘密键是一种非对称加密算法中的私钥,用于解密由公钥...

    Android保险箱

    通过这个API,开发者可以生成、导入、删除和管理各种类型的密钥,包括对称密钥、非对称密钥和证书。 2. **安全密钥生成**:在"Android保险箱"中,原始代码会详细展示如何生成强随机数,用于创建不可预测的密钥。这...

    java源码:Java生成密钥的实例.zip

    `javax.crypto.KeyGenerator` 是一个用于生成对称密钥的类。它使用特定的密钥生成参数,如密钥长度,来生成密钥对。例如,我们可以使用 `KeyGenerator.getInstance("AES")` 来生成AES(高级加密标准)的密钥。 3. ...

    Android 打包签名 从生成keystore到完成签名.zip

    这里,别名是识别密钥的唯一名称,RSA是常用的非对称加密算法,keysize指定密钥长度,有效期是密钥的有效时间,keystore文件路径是保存keystore的路径。 2. **输入密码**:keytool会提示输入keystore和密钥的密码,...

    密钥,密钥对,公钥,pfx,jks/https详解

    根据密钥的不同类型,我们可以将其分为对称密钥和非对称密钥两种。 - **对称密钥**: 加密和解密使用同一密钥,如DES、AES算法等。优点在于速度快,但密钥分发和管理较为困难。 - **非对称密钥(也称为公钥密码系统)*...

    Isis PKI and Keystore Service:公钥基础设施和 Java 密钥存储-开源

    Isis PKI 和密钥库服务提供完整的 PKI 服务,用于创建、存储和管理 RSA 私有/公共密钥和证书以及对称密钥。 Isis 可以管理多个密钥存储文件和一个保存在嵌入式 H2 数据库中的内部默认存储。 然后,可以使用Isis Java...

    Java非对称加密源码实例.rar

    此外,对于大量数据,非对称加密的效率较低,通常我们会先用公钥加密一个对称密钥,然后用这个对称密钥加密大量数据,这种方式称为混合加密。 7. **证书与证书链**:在实际应用中,公钥通常会封装在一个X.509证书中...

    AppKeystore1.0

    每个Android应用都必须使用一个私钥进行签名,这个私钥通常存储在一个Keystore文件中。Keystore文件可以包含多个密钥对,每个密钥对可以用于签署不同的应用。 生成Android Keystore的步骤如下: 1. 使用`keytool`...

    非对称加密的案例

    在Java中,`java.security.cert`包提供了证书和证书路径管理的类,如`X509Certificate`表示X.509标准的数字证书,`KeyStore`用于存储密钥和证书。 总结来说,非对称加密是保障信息安全的重要手段,尤其在传输敏感...

    AesUtil:针对android aes 加密,非java

    在Android中,我们可以使用Android Keystore System来存储和管理密钥,确保其安全性。 "AesUtil" 模块可能包含以下功能: 1. **密钥生成**:在Android设备上,可以利用Keystore API生成AES密钥,确保密钥不会被反...

    Java非对称加密源码实例.zip

    同时,非对称加密效率较低,通常用于加密小量数据或加密对称密钥,而非大量数据。 这个"Java非对称加密源码实例.zip"可能包含了一些这样的示例,演示如何在Java中实现上述步骤,帮助开发者更好地理解和应用非对称...

    Android开发—知识点精讲10—Android六种核心安全机制-加密、密钥、签名与证书视频教程下载(8课程).txt

    Android提供了多种API来生成密钥,例如使用`KeyPairGenerator`类可以生成非对称密钥对。 **2. 密钥存储** 密钥存储的安全性直接影响到系统的整体安全性。Android提供了KeyStore系统来存储密钥,它可以保护密钥不被...

    Java&keytool生成RSA密钥

    RSA是一种非对称加密算法,它基于两个密钥:公钥和私钥,公钥用于加密,私钥用于解密。Keytool是Java提供的一个工具,用于管理这些密钥和证书。 首先,我们要理解RSA的基本原理。RSA算法基于大数因子分解的难题,...

    非常全且非常好用的国密算法DoubleCA-JCE完整实现,0.94版本,含国密SSL的SM2密钥协商,(附详细测试和应用代码)

    密钥生成算法 SM2密钥对生成算法的实现 SM4密钥生成算法的实现 加解密算法 ...SM2算法数字证书、SM2密钥对加密保护与存储功能的实现 国密SSL功能 国密SSL规范预主密钥、主密钥生成与计算功能的实现

Global site tag (gtag.js) - Google Analytics