我正在做一个RSA项目,在这个项目中,我调用了加密和解密函数,这些函数在调用时获取BigInteger值并返回encrypetd或解密的BigInteger值。我从用户(从文本框)获得加密或解密的号码并将其发送到适当的功能。当用户在文本框中输入数值时,这种工作很好,但现在我试图使它适用于用户给出的任何字符串(数字,字母和特殊字符),所以我需要将输入字符串转换为唯一的BigInteger值我可以正确解密和加密它。我尝试使用UTF8编码和Ascii编码(将字符串转换为字节数组,将字节数组转换为biginteger并将biginteger发送到正确的函数)。两者都不能正常工作,因为在使用上述方法加密后,我无法解密邮件,并且在将bigniteger值转换回字符串之后,它只显示了很多奇怪的字符(“?”和sqaures)。那么,如何让它工作以及将字符串转换为唯一的BigInteger的最佳方法是什么?如何将字符串转换为唯一的数值(BigInteger)?
非常感谢
p.s.我在C#中执行该项目
如果没有更多的输入(所需的协议和源代码),我们无法解决这个问题。此外,这听起来像是需要本地调试的本地问题。 –
为什么你想自己实现RSA而不是使用'RSA'类?如果你自己实现它,你需要实现OAEP填充和避免边信道攻击,这两种攻击都很容易出错。如果你弄错了,它会在完全不安全的情况下工作。 – CodesInChaos