Java 基于公共字符串的Android RSA加密
我正在开发一个android应用程序,希望用户能够使用他人的公钥加密消息。系统将生成一个公钥/私钥对,然后可以秘密地将消息发送给其他用户 我正在创建一个加密类,它将处理消息的加密/解密。不幸的是,我遇到了一些问题 在这个方法中,我希望传递用户的秘密(私钥)以及他们想要加密的消息。我希望这个秘密是用户定义的(比如“MySecretPassword”) 例外情况如下:Java 基于公共字符串的Android RSA加密,java,android,encryption,rsa,Java,Android,Encryption,Rsa,我正在开发一个android应用程序,希望用户能够使用他人的公钥加密消息。系统将生成一个公钥/私钥对,然后可以秘密地将消息发送给其他用户 我正在创建一个加密类,它将处理消息的加密/解密。不幸的是,我遇到了一些问题 在这个方法中,我希望传递用户的秘密(私钥)以及他们想要加密的消息。我希望这个秘密是用户定义的(比如“MySecretPassword”) 例外情况如下: java.security.spec.InvalidKeySpecException: java.lang.RuntimeExcep
java.security.spec.InvalidKeySpecException: java.lang.RuntimeException: error:0c0740b0:ASN.1 encoding routines:ASN1_get_object:TOO_LONG
我错过了什么?我是否遗漏了一些明显的东西,或者我误解了这些工具的工作原理?我以前使用过javascript库进行公钥/私钥加密,现在尝试做类似的事情。如果有人能给我指出正确的方向,我将不胜感激:)秘密不是公钥 您可以使用收件人的公钥进行加密。该值为public,这意味着任何人都可以查找它。您需要获取另一方公钥的值并将其输入到您的代码中,而不是发送您自己的私钥。正确的方法不涉及任何秘密 通常不使用RSA直接加密消息,而是使用RSA加密AES密钥(或其他对称密钥),并使用AES密钥加密消息。如果您的消息很短,您可以直接使用RSA,但它不适用于长消息 以下是几个链接,展示了如何在Android上实现RSA:
java.security.spec.InvalidKeySpecException: java.lang.RuntimeException: error:0c0740b0:ASN.1 encoding routines:ASN1_get_object:TOO_LONG