在本机反应中创建一个简单的应用程序后,我试图获取一个 .aab 文件。现在为了得到这个,我需要制作一个 .keystore 文件。现在,由于此应用程序将替换 Play 商店中的先前应用程序(使用 Dart 创建),我需要使用先前应用程序的 .jks 格式的密钥库文件。现在我可以使用这个 .jks 文件还是需要将此 .jks 文件转换为 .keystore 文件?我可以将此 .jks 文件转换为 .keystore 文件吗?
我的密钥库已经丢失了.我很可能错误地删除了它,但我在我的回收箱中找不到它.
我的密钥库最初位于我的bin文件夹中,不适合它,因为文件在发布时会自动删除
我知道以前的密钥库的详细信息.除了可能到期日.
我想把更新推向市场,但由于新证书不同,它不会让我.
我希望我可以在当前发布的文件中添加一个额外的证书,以便它只接受新证书的更新版本.与此处描述的类似.如何使用多个证书签署APK?
我跳过上面描述中的第一行,因为它已经通过eclipse签名了,但是当我执行第二行时,由于"无效的条目压缩大小(预期的X但是得到Y字节)",我得到了一个ZipException.
有没有办法在我的apk上放第二个证书?
有没有办法从我知道的信息中重新创建原始密钥库?
我还没准备好相信,我将不得不将更新作为一个全新的应用程序提交.
我想为 Android 操作系统创建基于 OpenVPN 的自定义 VPN 应用程序。我想应该这样做的方法是首先使用 NDK 编译 OpenVPN 客户端,然后制作 GUI,它将通过 JNI 与 Open VPN 程序进行通信,然后还将自定义证书安装到证书存储中。这样的事情可能吗?它困难吗?我见过一些开源解决方案,所以我可能会从它们开始,但任何提示或建议都会很棒!
是否有可能包含 tun-module?
非常感谢
BR
斯坦
后来补充:我在网上看到了一些可用的解决方案。为了使用 OpenVPN,设备必须是 root 的吗?我在那里看到 (http://stackoverflow.com/questions/2809908/android-vpn-at-the-native-layer) 很好的描述,我可以理解其中的原因,因为 VPN 在 IP 级别工作并为整个系统......还有其他方法吗?
我正在使用Bouncy Castle提供的库来加密,解密,签名和验证标志.我这样做
1.加密数据
2.签名数据
3.将签名字节写入文件
4.从文件中读取签名字节
5.验证签名
6.解密数据
我参考了Beginning Cryptography with Java
当我验证数据时,我的问题出在第5步
org.bouncycastle.cms.CMSException:message-digest属性值与计算值不匹配
我的代码如下
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.math.BigInteger;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.KeyStore;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.SecureRandom;
import java.security.cert.CertPathBuilder;
import java.security.cert.CertStore;
import java.security.cert.Certificate;
import java.security.cert.CollectionCertStoreParameters;
import java.security.cert.PKIXBuilderParameters;
import java.security.cert.PKIXCertPathBuilderResult;
import java.security.cert.TrustAnchor;
import java.security.cert.X509CertSelector;
import java.security.cert.X509Certificate;
import java.util.Arrays;
import java.util.Collections;
import java.util.Date;
import java.util.Iterator;
import javax.security.auth.x500.X500Principal;
import javax.security.auth.x500.X500PrivateCredential;
import org.bouncycastle.asn1.x509.BasicConstraints;
import org.bouncycastle.asn1.x509.KeyUsage;
import org.bouncycastle.asn1.x509.X509Extensions;
import org.bouncycastle.cms.CMSEnvelopedData;
import org.bouncycastle.cms.CMSEnvelopedDataGenerator;
import org.bouncycastle.cms.CMSEnvelopedDataParser; …
Run Code Online (Sandbox Code Playgroud) 尝试在Eclipse中为我的Android应用程序使用自定义debug.keystore时,我收到此错误.
我正在使用这些命令来生成我的密钥库:
keytool -genkey -v -keystore debug.keystore -alias androidfacebookdebugkey -storepass android -keypass android -keyalg RSA -validity 14000
Run Code Online (Sandbox Code Playgroud)
是否有任何特殊方法为eclipse生成调试密钥库?对于任何其他IDE,除此之外我从来没有做过任何事情.
我正在尝试给这只猫剥皮:Use PEM Encoded CA Cert on filesystem direct for HTTPS request? 其他方式。
Java有一个类KeyStore.TrustedCertificateEntry
,但我不知道如何将证书加载到其中。我的代码类似于以下内容:
import java.security.KeyStore.TrustedCertificateEntry;
...
X509Certificate ca = (X509Certificate) CertificateFactory(...);
KeyStore ks = TrustedCertificateEntry(ca);
Run Code Online (Sandbox Code Playgroud)
和:
X509Certificate ca = (X509Certificate) CertificateFactory(...);
KeyStore ks = KeyStore.TrustedCertificateEntry(ca);
Run Code Online (Sandbox Code Playgroud)
和:
X509Certificate ca = (X509Certificate) CertificateFactory(...);
KeyStore ks = new KeyStore.TrustedCertificateEntry(ca);
Run Code Online (Sandbox Code Playgroud)
和:
X509Certificate ca = (X509Certificate) CertificateFactory(...);
KeyStore ks = new KeyStore.TrustedCertificateEntry(ca);
Run Code Online (Sandbox Code Playgroud)
该程序无法编译,并出现类似以下内容的错误:
SuperCert.java:33: error: cannot find symbol
KeyStore ks = TrustedCertificateEntry(ca);
^
symbol: method TrustedCertificateEntry(X509Certificate)
location: class TestCert
Run Code Online (Sandbox Code Playgroud)
将我的 X509 证书加载到 …
如何在Android中使用apksign.jar获取设备制造商密钥库证书以签署应用程序?
我执行以下操作以基于KeyStore中的用户密码存储SecretKey:
// load KeyStore
static byte[] salt = // for learning purposes
{ (byte) 0xc7, (byte) 0x73, (byte) 0x21, (byte) 0x8c,
(byte) 0x7e, (byte) 0xc8, (byte) 0xee, (byte) 0x99 };
String alias = "aeskey";
char[] password = "password".toCharArray();
SecretKeyFactory factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1");
KeySpec spec = new PBEKeySpec(password, salt, 65536, 256);
SecretKey tmp = factory.generateSecret(spec);
SecretKey secret = new SecretKeySpec(tmp.getEncoded(), "AES/CBC/PKCS5Padding");
Entry aesentry = new KeyStore.SecretKeyEntry(secret);
store.setEntry(alias, aesentry, protParam);
Run Code Online (Sandbox Code Playgroud)
现在我可以从KeyStore获取SecretKey:
KeyStore.SecretKeyEntry e = (SecretKeyEntry) store.getEntry("aeskey", protParam);
secret = e.getSecretKey();
Run Code Online (Sandbox Code Playgroud)
如何从SecretKey获取初始密码?
我丢失了我的密钥库别名,但我有密钥库文件和所有密码.有什么方法可以找出我的密钥库别名是什么?
我一直在尝试使用cmd来显示密钥库中的信息,但没有成功.有人可以彻底告诉我如何检索我的别名吗?:)
休假后,我将 Android 开发从 Windows 下的 Eclipse 迁移到了 Ubuntu 下运行 Android Studio 的新机器。
因为我希望使用 Google Maps v1(不再发布新的 API 密钥)移植现有项目,所以我将发布和调试密钥库复制到新机器。
在 Eclipse 下,无需知道自动创建的调试密钥库的位置以及用它签名的调试加载。
在Android Studio下,同样的原则也适用吗?如果有一个系统创建的调试密钥库,它在哪里,或者我是否必须显式定义一个?
我想在我的应用程序中集成google plus登录,所以我需要SHA 1.
所以我试图通过命令行使用生成
keytool -exportcert -alias androiddebugkey -keystore~/.android/debug.keystore -list -v
但是当我输入密码时(我在签署apk时使用密码)它要求密钥存储密码.它说错了密码.
如何重置密码?
我需要在一个套接字ssl连接中使用密钥对,而不会在客户端中进行任何更改.
为什么?
因为一个客户端在信任存储区中使用CN属性进行连接握手,而在同一属性中使用另一个值以同一方式处理相同任务的其他客户端.
所以我需要使用具有不同CN属性的两个密钥存储(私有)以及别名并共享具有不同CN属性的两个不同信任存储(公钥)以及别名.
描述如下:
keyStore1
密钥库类型:JKS
密钥库提供商:SUN
别名:identity1
所有者:CN = app1 ...
发行人:CN = app1 ......
trustStore1
别名:identity1
所有者:CN = app1 ...
发行人:CN = app1 ......
keyStore2
别名:identity2
所有者:CN = app2 ...
发行人:CN = app2 ......
trustStore2
别名:identity2
所有者:CN = app2 ...
发行人:CN = app2 ......
我尝试以这种方式实现此功能:
KeyStore KeyStore1;
try {
String keyStoreFile1 = "privatekey1";
String keyStoreType1 = "jks";
char[] keyStorePwd1 = "password".toCharArray();
keyStore1 = …
Run Code Online (Sandbox Code Playgroud) 有人可以从命令行构建我的android项目时遇到的这个问题吗?
我想使用ant在签署模式下构建项目。为此我需要key.store = path / to / my.keystore key.alias = mykeystore
有人可以告诉我在哪里可以找到这些“我的密钥库路径”和“ mykeystore”信息!这真的让我发疯了!因此我被困住了。
因此,如果有人知道答案,您可以分享... :)