我试图在java中找到一个公钥加密方法,它将生成一个与原始字符串长度相同的字符串。通常的rsa不起作用。它为3个字符的字符串生成一个非常长的字符串。我想为我的项目做的是用一个密钥加密一个字符串,然后用一个密钥重新加密它,但是有一个长字符串只会极大地减慢这个过程。有什么建议?
答案 0 :(得分:2)
RSA没有流密码模式,可以创建与明文相同长度的密文。密文始终是模数的大小。因此,如果您使用的是RSA 2048,则密文将为256字节长。没有办法缩短它。这将是你需要的256字节,但如果你还需要对其进行编码以保持传输的持久性,那么它将会更大。
您可以使用较短的RSA密钥,例如RSA 1536,这将产生192字节的密文,如果您使用Base 64对其进行编码,则它将精确地为256字节。