我正在java中自己实现RSA算法。 到目前为止,我有它工作,我希望能够加密消息字符串,例如。 “你好” 它是一个非常基本的版本,目前没有使用任何大数字。
所以我在每封信中读到了它的Ascii代码并对其进行了编码。
但是我试图找出一种方法来读取它输出的数字序列。
说你好加密的数字序列是; H E L L 0 101 123 111,111,101(这些只是随机挑选的数字btw)
所以说我的消息变成了101123111111101
如果我正在阅读这些数字,我怎么知道哪些部分要解密?我的第一个想法是在数字之间使用某种分隔符。例如,101,123,111,111,101
读回来解析它们? 或者我错过了什么?
如果我更改公钥和私钥并且数字变得更大且更随机,这会在以后引起问题吗?
答案 0 :(得分:1)
如果每个代码的数字长度完全相同,那么您可以每隔很多字符拆分内容。例如,你最后两位数字使用0-9,第一位数字使用1-9,这是2次幂的9倍10,有900种可能性。因此,假设您决定为所有内容分配一个唯一的3个数字。
示例A = 171,B = 182,C = 193,D = 204,E = 215等。
然后在读取文件时使用子字符串。然后将每个转换回相应的值。但你应该做些什么来使解密更难,一次使用两个字母/数字的不同值
你好: 他:10291 LL:19024 0:11958
等。这将使解密变得更加困难,指数级变得更难,并且你可以一次继续这样做3,4,5,6和更多。