出于美观原因,我想使用我之前用于创建分发证书的相同私钥,以创建新的开发证书(我的旧证书已过期).但iOS配置门户上的"如何创建开发证书:"要求您使用Keychain Access创建新密钥.当我尝试执行Keychain Access> Certificate Assistant>从证书颁发机构申请证书时"(我的密钥名称)"证书助理实际上并不创建CSR文件.
有谁知道这是否可以做到,如果可以,怎么做?
我目前正致力于将键转换为字符串,反之亦然.它适用于公钥转换,并将私钥转换为String.由于某种原因,相同的代码不会将String转换回私钥,这是我无法弄清楚的.
转换器代码是:
import java.security.KeyFactory;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.spec.X509EncodedKeySpec;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
@SuppressWarnings("restriction")
public class KeyConvert {
public static PublicKey stringToPublicKey(String s) {
BASE64Decoder decoder = new BASE64Decoder();
byte[] c = null;
KeyFactory keyFact = null;
PublicKey returnKey = null;
try {
c = decoder.decodeBuffer(s);
keyFact = KeyFactory.getInstance("DSA", "SUN");
} catch (Exception e) {
System.out.println("Error in Keygen");
e.printStackTrace();
}
X509EncodedKeySpec x509KeySpec = new X509EncodedKeySpec(c);
try {
returnKey = keyFact.generatePublic(x509KeySpec);
} catch (Exception e) {
System.out.println("Error in Keygen2");
e.printStackTrace(); …
Run Code Online (Sandbox Code Playgroud) 我使用RSA算法生成公钥和私钥
final KeyPairGenerator keyGen = KeyPairGenerator.getInstance(ALGORITHM);
keyGen.initialize(1024);
final KeyPair key = keyGen.generateKeyPair();
final PrivateKey privateKey=key.getPrivate();
final PublicKey publickey=key.getPublic();
Run Code Online (Sandbox Code Playgroud)
之后,使用Base64编码器对这些密钥进行编码并将其保存到数据库中.
如何在java中将此编码的字符串转换为私有和公钥类型是解密文件.使用Base64Decoder解码此String时将获得一个字节数组.如何将此Byte数组转换为公钥或私钥类型?
我想连接到远程服务器,我知道用户名和主机名,并且我也有该private_key.pem
文件。如何使用 VSCode 连接到该虚拟机?
我在互联网上的解决方案中遇到了这个错误,这是合理的,因为我没有private_key.pem
在任何地方导入这个文件,而且我不知道如何导入。
Permission denied (publickey)
Run Code Online (Sandbox Code Playgroud)
感谢您的帮助。
我使用的是windows,但远程机器是ubuntu。
最近我发现parse.com是多么有用和简单.它确实加快了开发速度,并为您提供了现成的数据库来存储来自您的Web /移动应用程序的所有数据.
但它有多安全?根据我的理解,您必须在代码中嵌入您的应用程序私钥,从而授予对数据的访问权限.
但是,如果有人能够从您的应用程序恢复密钥怎么办?我亲自尝试过.我花了5分钟从标准APK中找到私钥,并且还有可能在您的javascript源代码中使用私钥进行硬编码构建一个Web应用程序,几乎任何人都可以看到它.
保护我发现的数据的唯一方法是ACL(https://www.parse.com/docs/data),但这仍然意味着任何人都可以篡改可写数据.
有人可以开导我吗?
我有以下几行来从Android上的密钥存储区获取私钥
KeyStore keyStore = KeyStore.getInstance("AndroidKeyStore");
keyStore.load(null);
// generating key pair code omitted
KeyStore.PrivateKeyEntry privateKeyEntry = (KeyStore.PrivateKeyEntry) this.keyStore.getEntry("alias", null);
Run Code Online (Sandbox Code Playgroud)
一切正常,但当操作系统从Android 5.1.1升级到Android 6.0.1时,第3行将java.security.UnrecoverableKeyException: Failed to obtain information about private key
首先执行.但之后它会再次正常工作.现在我的解决方法是执行该行2次.与此同时,我也想知道是否有更好的方法来避免异常.
异常跟踪
W/System.err? java.security.UnrecoverableKeyException: Failed to obtain information about private key
W/System.err? at android.security.keystore.AndroidKeyStoreProvider.loadAndroidKeyStorePublicKeyFromKeystore(AndroidKeyStoreProvider.java:217)
W/System.err? at android.security.keystore.AndroidKeyStoreProvider.loadAndroidKeyStoreKeyPairFromKeystore(AndroidKeyStoreProvider.java:253)
W/System.err? at android.security.keystore.AndroidKeyStoreProvider.loadAndroidKeyStorePrivateKeyFromKeystore(AndroidKeyStoreProvider.java:263)
W/System.err? at android.security.keystore.AndroidKeyStoreSpi.engineGetKey(AndroidKeyStoreSpi.java:93)
W/System.err? at java.security.KeyStoreSpi.engineGetEntry(KeyStoreSpi.java:372)
W/System.err? at java.security.KeyStore.getEntry(KeyStore.java:645)
W/System.err? at com.example.keystoretest.MainActivity.onCreate(MainActivity.java:113)
W/System.err? at android.app.Activity.performCreate(Activity.java:6251)
W/System.err? at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
W/System.err? at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
W/System.err? at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
W/System.err? at android.app.ActivityThread.-wrap11(ActivityThread.java)
W/System.err? at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) …
Run Code Online (Sandbox Code Playgroud) 我正在尝试对消息进行编码,SH1 RSA
但我没有安全主题的经验,除了一些基本信息RSA
.我被给了一个私钥作为String
.我已经设法写下面的代码块来完成这项工作,但我不确定我是否正确地安全地完成了这项工作.
我不是专家,但在代码中将我的私钥作为String放置是不安全的我猜.谁能指导我?
String privateKeyString = "mykeyhere...";
byte[] privateKeyBytes = privateKeyString.getBytes();
String encodedPrivateKey = Base64.encodeToString(privateKeyBytes, Base64.URL_SAFE);
KeyFactory factory = KeyFactory.getInstance(RSA);
PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(encodedPrivateKey.getBytes());
RSAPrivateKey privateKey = (RSAPrivateKey) factory.generatePrivate(keySpec);
Signature instance = Signature.getInstance(ALGORITHM);
instance.initSign(privateKey);
instance.update(content.getBytes());
return new String(instance.sign());
Run Code Online (Sandbox Code Playgroud)
我的私钥形式如下:
"-----BEGIN PRIVATE KEY-----\n"+
"MIIE...\n"+
"cH0iRj...\n"+
"O0Hhj...\n"+
.
.
.
"fG6...\n"+
"B6/hF...\n"+
"3Mq38...\n"+
"-----END PRIVATE KEY-----\n"
Run Code Online (Sandbox Code Playgroud) 我们的其中一个应用程序github-backup
要求使用RSA私钥作为环境变量.
只需尝试将密钥导出到终端中,例如:
text
export PRIVATE_KEY=-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEA04up8hoqzS1+
...
l48DlnUtMdMrWvBlRFPzU+hU9wDhb3F0CATQdvYo2mhzyUs8B1ZSQz2Vy==
-----END RSA PRIVATE KEY-----
不起作用......因为换行符.
我做了一些谷歌搜索,但没有找到一个可行的解决方案...
例如:如何为AWS弹性豆设置多线RSA私钥环境变量
错误:
-----END RSA PRIVATE KEY-----': not a valid identifier
按照以下说明操作:http: //blog.vawter.com/2016/02/10/Create-an-Environment-Variable-from-a-Private-Key
创建一个keytoenvar.sh
使用以下行调用的文件:
#!/usr/bin/env bash
file=$2
name=$1
export $name="$(awk 'BEGIN{}{out=out$0"\n"}END{print out}' $file| sed 's/\n$//')"
Run Code Online (Sandbox Code Playgroud)
然后运行以下命令:
source keytoenvar.sh PRIVATE_KEY ./gitbu.2018-03-23.private-key.pem
Run Code Online (Sandbox Code Playgroud)
这有效但似乎是一种" 啰嗦 "的方法......
有谁知道更简单的方法吗?
(我希望有一个" 初学者友好 "的解决方案,没有太多的"步骤"......)
我正在尝试签署我的Android应用,以便我可以在Market中发布它.当我生成密钥库时,我收到拒绝访问错误.我该如何解决?
这就是我一直在努力做的事情:
C:\Program Files\Java\jdk1.6.0_25\bin
并授予该CREATOR OWNER
组对该文件夹的完全控制权.C:\Program Files\Java\jdk1.6.0_25\bin
..
C:\Program Files\Java\jdk1.6.0_25\bin>keytool -genkey -v -alias company -keyalg R
SA -keysize 2048 -validity 10000 -keystore company.keystore
Enter keystore password:
Re-enter new password:
What is your first and last name?
[Unknown]: John Smith
What is the name of your organizational unit?
[Unknown]: Android
What is the name of your organization?
[Unknown]: Company
What is the name of your …
Run Code Online (Sandbox Code Playgroud) 我想使用公钥/私钥技术加密数据.我的意思是,用接收器的公钥加密,接收器可以用自己的私钥解密.
我怎样才能做到这一点?您有任何建议或示例代码吗?
c# encryption cryptography public-key-encryption private-key
private-key ×10
android ×3
java ×3
cryptography ×2
encryption ×2
public-key ×2
security ×2
c# ×1
certificate ×1
ios ×1
iphone ×1
jce ×1
keystore ×1
keytool ×1
multiline ×1
rsa ×1
ssh ×1