标签: public-key

验证用户的私钥以进行网站登录

我正在尝试使用公钥身份验证实现登录系统登录网站.我不确定这是否可行.

这是我打算做的: -

  1. 注册时,用户的公钥将保存在网站中.
  2. 当用户稍后尝试登录时,网站会询问用户其对应的私钥.
  3. 如果私钥与用户在注册时提供的公钥匹配,则对用户进行身份验证.

我见过像startssl.com这样的网站要求用户的私钥来验证他们的身份(参见附件截图).那么实现这样一个系统需要什么呢?

网站要求私钥的屏幕截图

authentication public-key-encryption public-key web

14
推荐指数
1
解决办法
5083
查看次数

iPhone:如何从公钥文件(PEM)创建SecKeyRef

为了从/发送和接收加密邮件的iPhone我需要阅读公钥(服务器的公钥)PEM文件,并创建一个SecKeyRef(后来我甚至可以将其存储在钥匙串,以免再次创建它).

这是我目前的工作流程:

  1. 在服务器上:使用用户的证书和私钥创建P12文件.将用户的公钥存储在服务器的钥匙串中.
  2. 在iPhone上:从服务器检索P12文件,使用密码打开它并将私钥存储在钥匙串上.
  3. 在iPhone上:使用服务器的公钥从服务器检索PEM文件.创建SecKeyRef并将其存储在钥匙串上
  4. 在iPhone上:使用两个密钥向/从服务器发送/接收加密消息.
  5. 从此过上幸福的生活.

我遇到3问题,因为我无法从PEM文件数据创建SecKeyRef.我找不到任何关于如何做的文档,有没有人有同样的问题?任何提示?由于我找不到任何代码示例或文档,我觉得我做错了...

谢谢!

iphone encryption rsa public-key

13
推荐指数
1
解决办法
1万
查看次数

在Java中从私有获取公钥

我记得很久以前用OpenSSL这么做,但我想知道它是否可能以及如何,我从来没有在java上使用过Cryptography.

java public-key private-key

13
推荐指数
3
解决办法
2万
查看次数

如何使用JSch SFTP库解析Java UnknownHostKey?

我正在运行一个java程序,我使用Java SFTP将文件从一个文件夹传输到另一个文件夹.我遇到的问题是我在Java SFTP中遇到以下错误(使用JSch):

C:\ Oracle\Middleware\Oracle_Home\oracle_common\jdk\bin\javaw.exe -server -classpath C:\ JDeveloper\mywork\Java_Hello_World.adf; C:\ JDeveloper\mywork\Java_Hello_World\Client\classes; C:\ Users\ADMIN\Downloads\jsch-0.1.53.jar -Djavax.net.ssl.trustStore = C:\ Users\IBM_AD~1\AppData\Local\Temp\trustStore5840796204189742395.jks FileTransfer com.jcraft.jsch.JSchException:UnknownHostKey: 127.0.0.1.RSA密钥指纹是a2:39:3f:44:88:e9:1f:d7:d1:71:f4:85:98:fb:90:dc at com.jcraft.jsch.Session.checkHost(Session.java: 797)at com.jcraft.jsch.Session.connect(Session.java:342)at com.jcraft.jsch.Session.connect(Session.java:183)at FileTransfer.main(FileTransfer.java:33)进程退出时退出代码0.

以下是我目前的代码:

FileTransfer fileTransfer = new FileTransfer();              

JSch jsch = new JSch();

try {

    String host = "127.0.0.1";
    int port = 22;

    String user = "user";
    Session session = jsch.getSession(user, host, port);      
    session = jsch.getSession("username", "127.0.0.1", 22);
    session.connect();  // bug here , java.net.ConnectException

    ChannelSftp sftp = null;
    sftp = (ChannelSftp)session.openChannel("sftp") ; //channel;

    //extra config code …
Run Code Online (Sandbox Code Playgroud)

java ssh sftp jsch public-key

13
推荐指数
2
解决办法
2万
查看次数

InvalidKeyException:无效的密钥格式 java

我正在尝试从 Vault 检索公钥。它被秘密存储。

我正在尝试将检索到的字符串转换为公钥以验证签名。

示例公钥字符串如下所示

-----开始公钥----- MIIBITANBgkqhkiG9w0BAQEFAAOCAQ4AMIIBCQKCAQBWeqVZ8Ub/o4VQ8nnm888B /Ydqv2IN5bObxupZ7njMKuT/WPgwlK8+Wc0Xjhy82E51XW6E4/0um8sIQ1cxvoSO QsrfkRagD+ O9OrjQbb2TqrilDDhFx9EGjXuZpR3brDUufCG6SkypqiKSaMuoVoax c82TZ1uAIp5OSroWt1IdUkvam24X/7zDIf1l8XWCmbfCDrBb73hBYA4MgTjsSckC 5nz+GLcWTfz0wze4lwHCi1KYFv+1+WcYHWPLbqL tc8nzVqkuP5Ne/9HAFkaEAIw5 fKLccksaT/TLyIcrALcfuABlgX1yeBulVcbTAp+WiYRvo9+FKK23pbwkh+uy0tq1 AgMBAAE= -----结束公钥-----

我在我的秘密值中添加了相同的内容,并且没有格式。

但是,使用下面的代码,我在行中遇到错误 InvalidKeyException: INVALID KEY FORMAT

 PublicKey publicKey = fact.generatePublic(pubKeySpec);
Run Code Online (Sandbox Code Playgroud)

这是代码:

            String publicKeyAsString = secretClient.getSecret("key-name").getValue();
    
            byte[] keyContentAsBytes = publicKeyAsString.getBytes();
    
            KeyFactory fact = KeyFactory.getInstance("RSA");
            X509EncodedKeySpec pubKeySpec = new X509EncodedKeySpec(keyContentAsBytes);
            PublicKey publicKey = fact.generatePublic(pubKeySpec);
Run Code Online (Sandbox Code Playgroud)

用堆栈跟踪编辑:

Caused by: java.security.InvalidKeyException: invalid key format
    at sun.security.x509.X509Key.decode(X509Key.java:386) ~[?:?]
    at sun.security.x509.X509Key.decode(X509Key.java:401) ~[?:?]
    at sun.security.rsa.RSAPublicKeyImpl.<init>(RSAPublicKeyImpl.java:122) ~[?:?]
    at sun.security.rsa.RSAKeyFactory.generatePublic(RSAKeyFactory.java:330) ~[?:?]
    at sun.security.rsa.RSAKeyFactory.engineGeneratePublic(RSAKeyFactory.java:235) ~[?:?]
Run Code Online (Sandbox Code Playgroud)

编辑:用于测试的公钥:

-----开始公钥----- MIIBITANBgkqhkiG9w0BAQEFAAOCAQ4AMIIBCQKCAQBWeqVZ8Ub/o4VQ8nnm888B /Ydqv2IN5bObxupZ7njMKuT/WPgwlK8+Wc0Xjhy82E51XW6E4/0um8sIQ1cxvoSO QsrfkRagD+ O9OrjQbb2TqrilDDhFx9EGjXuZpR3brDUufCG6SkypqiKSaMuoVoax c82TZ1uAIp5OSroWt1IdUkvam24X/7zDIf1l8XWCmbfCDrBb73hBYA4MgTjsSckC 5nz+GLcWTfz0wze4lwHCi1KYFv+1+WcYHWPLbqL tc8nzVqkuP5Ne/9HAFkaEAIw5 fKLccksaT/TLyIcrALcfuABlgX1yeBulVcbTAp+WiYRvo9+FKK23pbwkh+uy0tq1 …

java digital-signature public-key-encryption public-key

13
推荐指数
1
解决办法
1万
查看次数

将.pem公钥和私钥导入JKS密钥库

我在单独的.pem文件中有公钥和私钥,我需要以某种方式进入JKS密钥库.

为此尝试在KeyTool中使用-import命令,这会产生"非X.509证书"错误.

我猜这个解决方案与OpenSSL有关,但我不完全确定如何处理它.

真的很感激任何帮助,因为我对所有与加密有关的东西都完全无能为力.

在此先感谢, - 罗尔夫

cryptography certificate keystore public-key private-key

12
推荐指数
1
解决办法
1万
查看次数

仅使用Bouncy Castle阅读PEM RSA公钥

我正在尝试使用C#读取.pem仅包含RSA公钥的文件.我无权访问私钥信息,我的应用程序也不需要它.文件myprivatekey.pem文件以.开头

-----BEGIN PUBLIC KEY----- 最后以 -----END PUBLIC KEY-----.

我目前的代码如下:

    Org.BouncyCastle.Crypto.AsymmetricCipherKeyPair keyPair;

    using (var reader = File.OpenText(@"c:\keys\myprivatekey.pem"))
        keyPair = (Org.BouncyCastle.Crypto.AsymmetricCipherKeyPair)new Org.BouncyCastle.OpenSsl.PemReader(reader).ReadObject();
Run Code Online (Sandbox Code Playgroud)

但是代码会抛出一条InvalidCastException消息

无法将"Org.BouncyCastle.Crypto.Parameters.DsaPublicKeyParameters"类型的对象强制转换为"Org.BouncyCastle.Crypto.AsymmetricCipherKeyPair".

PemReader当没有私钥信息时,如何使用Bouncy Castle 只读公钥?

c# bouncycastle pem public-key

12
推荐指数
2
解决办法
3万
查看次数

如何使用Java创建X509证书?

我想使用Java语言创建X509证书,然后从中提取公钥.

我搜索了互联网,发现了很多代码示例,但是所有代码都有错误(未知变量或未知类型)或者有许多警告,例如:"方法......来自类型......已被弃用"等.

例如,为什么以下代码不起作用:

PublicKey pk;
CertificateFactory cf = CertificateFactory.getInstance("X.509");
String PKstr = pk.toString();
InputStream PKstream = new ByteArrayInputStream(PKstr.getBytes());
X509Certificate pkcert = (X509Certificate)cf.generateCertificate(PKstream);
Run Code Online (Sandbox Code Playgroud)


谁能告诉我如何使用纯Java或Bouncy Castle创建证书,然后从中获取公钥?

谢谢大家.

java certificate x509certificate public-key

12
推荐指数
2
解决办法
3万
查看次数

生成真正的大素数

我正在玩并尝试编写RSA的实现.问题在于我不得不生成生成密钥对所涉及的大量素数.有人能指出我快速生成巨大的素数/可能的素数吗?

encryption primes rsa public-key

11
推荐指数
1
解决办法
5265
查看次数

.ssh配置亚马逊ec2和git

从亚马逊ec2服务器克隆git存储库我有一个奇怪的问题.它在我的一台运行ubuntu 12.04的计算机上运行没有任何问题,而在另一台使用12.10的计算机上它给我一个错误:

ssh: Could not resolve hostname ec2server: Name or service not known  
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)

这就像它没有识别我的配置文件.我使用以下git命令克隆:

sudo git clone ec2server:/var/www/project.git
Run Code Online (Sandbox Code Playgroud)

要么

sudo git clone ec2xxx.compute-1.amazonaws.com:/var/www/project.git
Run Code Online (Sandbox Code Playgroud)

这两个配置文件在两台计算机上相同,位于〜./ ssh中,内容如下:

Host ec2server
   Hostname ec2XXX.compute-1.amazonaws.com
   User ubuntu
   IdentityFile ~/.ssh/mykey.pem
Run Code Online (Sandbox Code Playgroud)

如果我用实际地址替换ec2server,我会收到以下错误:

Cloning into 'project'...
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)

提前致谢.

git config amazon-ec2 public-key

11
推荐指数
2
解决办法
1万
查看次数