Tag: 公钥

如何从java中的PFX文件中读取公钥

我能够从PFX文件中读取私钥,但不能读取公钥。 我使用以下代码来读取公钥。 InputStream inStream = new FileInputStream(certFile); CertificateFactory cf = CertificateFactory.getInstance(“X.509”); BufferedInputStream bis = new BufferedInputStream(inStream); // if (bis.available() > 0) { java.security.cert.Certificate cert = cf.generateCertificate(bis); System.out.println(“This part is not getting printed in case of PFX file”); // } puk = (PublicKey) cert.getPublicKey(); 当我从.cer文件中读取时,此代码正常工作。 请帮忙

有关java中公钥加密的任何教程吗?

我已经能够找到有关对称加密和散列的信息,但是我在查找有关java的任何类型的公钥加密的大量信息方面遇到了很多麻烦。 我想做的是做一个非常简单的概念certificate程序,它接受一个字符串(或我认为的文件),用公钥加密它,然后用私钥解密它。 任何教程链接或示例将不胜感激。 我只是想说明如何在Java中使用公钥加密。

使用公钥进行RSA解密

我的Android项目中有一些解密问题。 我收到一个用私钥签名的字符串,我必须用公钥validation(解密)它。 我希望得到与使用PHP函数完全相同的结果 – openssl_public_decrypt( http://php.net/manual/pl/function.openssl-public-decrypt.php ) 我必须在我的Java项目中这样做,所以我可以使用Java库(例如BouncyCastle,或其他什么,任何建议?) 任何想法如何解决这个问题? 好的,这是我的代码。 我正在收到这样的公钥 PEMReader reader = new PEMReader(new InputStreamReader(ctx .getAssets().open(“pubkey.pem”))); Object obj; while ((obj = reader.readObject()) != null) { if (obj instanceof RSAPublicKey) { pubKey = (RSAPublicKey) obj; return pubKey; } } 我总是毫无问题地得到公钥。 Cipher c = Cipher.getInstance(“RSA/NONE/NoPadding”, “SC”); c.init(Cipher.DECRYPT_MODE, pubKey); byte[] result = c.doFinal(data_to_decrypt.getBytes()); 结果(将字节转换为字符串后)我得到022c06571c6a263b389fcd93159cb311abb880bddf51b7c916dd1ae… 其中php函数返回sd8dsa348acvcx87|00454|OK|15000|CDE ,这是一个正确的输出。

从密钥库中的文件读取公钥

嗨,我想使用Java代码从KeyStore中提取公钥 我正在创建一个密钥库 keytool -genkey -alias mykeystore -keyalg RSA -keystore mykeystore.jks -keysize 2048 并将公众导出到另一个文件中 keytool -export -alias mykeystore -keystore mykeystore.jks -rfc -file publickey.cert 如何使用Java代码从keystore或publickey.cert文件获取公钥字符串? 谢谢。 UPDATE public static void main(String[] args) { try { FileInputStream is = new FileInputStream(“/home/myuser/my-keystore/mykeystore.jks”); KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType()); String password = “myuserpass”; char[] passwd = password.toCharArray(); keystore.load(is, passwd); String alias = […]

JAVA AES 256和公钥加密

我们的一位客户要求我们使用AES 256和公钥加密服务器端(Web服务)加密来自我们的Web服务的消息返回是基于Java的。 客户端可以是java或.Net。 我不熟悉任何加密方法,也找不到任何能让我入门的例子…… 这甚至可以实现AES 256和公钥加密吗? 它是如何工作的(公钥加密)? 请指导我一个让我入门的例子。

Android-Java RSA解密

我需要从二进制字符串创建RSA算法的公钥。 我的代码是: String pubKey = “tihq/Gk3OUs5NzP+XTRKXBwSxHtB0TWn0RREcpXEtp316tyD9DzKaIbdKexb/mRr”; byte[] keyBytes = Base64.decode(pubKey,Base64.DEFAULT); //test if is correct: ok Log.d(“response keyBytes”,new String(Base64.encode(keyBytes,Base64.DEFAULT))); KeyFactory keyFactory = KeyFactory.getInstance(“RSA”); X509EncodedKeySpec spec = new X509EncodedKeySpec(keyBytes); RSAPublicKey publicKey = (RSAPublicKey) keyFactory.generatePublic(spec); //PublicKey publicKey = (PublicKey) keyFactory.generatePublic(spec); 但我有这个错误: java.security.spec.InvalidKeySpecException: java.lang.RuntimeException: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag

从.pub格式的公钥创建JSch HostKey实例

我正在尝试使用JSch将文件从Windows机器发送到Linux机器。 因此我将主机公钥从Linux机器复制到我的Windows机器并将密钥添加到我的HostKeyRepository 。 但由于某种原因,我得到“无效密钥类型”exception。 这是我的代码: HostKeyRepository repo = jsch.getHostKeyRepository(); File file = new File(“D:\\Uni\\Arbeit\\ssh_host_rsa_key.pub”); byte[] HK = Files.readAllBytes(file.toPath()); Session session=jsch.getSession(user, host, 22); session.setPassword(password); HostKey hk = new HostKey(null, HK); repo.add(hk, null); session.connect();

从ECPrivateKey生成ECPublicKey

我正在尝试使用私钥和已知曲线生成公钥。 以下是我的代码: // Generate Keys ECGenParameterSpec ecGenSpec = new ECGenParameterSpec(“secp256r1”); KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance(“ECDSA”, “BC”); keyPairGenerator.initialize(ecGenSpec, new SecureRandom()); java.security.KeyPair pair = keyPairGenerator.generateKeyPair(); ECPrivateKey privateKey = (ECPrivateKey) pair.getPrivate(); ECPublicKey publicKeyExpected = (ECPublicKey) pair.getPublic(); // Expected public key System.out.print(“Expected Public Key: ” + BaseEncoding.base64Url().encode(publicKeyExpected.getEncoded())); // Generate public key from private key X9ECParameters ecp = SECNamedCurves.getByName(“secp256r1”); ECDomainParameters domainParams […]

在Java中从私有获取公钥

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

ECC PublicKey的Java紧凑表示

java.security.PublicKey#getEncoded()返回密钥的X509表示,在ECC的情况下,与原始ECC值相比增加了很多开销。 我希望能够在大多数紧凑的表示中将PublicKey转换为字节数组(反之亦然)(即尽可能小的字节块)。 KeyType(ECC)和具体曲线类型是预先已知的,因此不需要对它们的信息进行编码。 解决方案可以使用Java API,BouncyCastle或任何其他自定义代码/库(只要许可证并不意味着需要使用它的开源专有代码)。