所以我有一個使用模數加密的系統。VB.NET加密和解密
加密沒有問題,但字符串的解密不會回覆到原始字符串。
這裏被用於加密
modByte(i) + modKey Mod 255
和用於解密的,這將是 modByte(ⅰ)我的式 - modKey國防部255
這就是我解密它時發生的事情。 PS。我改變了配方的加密按鈕 這是我對加密按鈕的代碼
Dim counter As Integer = 0
If mod_TB_key.Text = "" Then
MessageBox.Show("Pls Input Modulo Key Value", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
Else
modKey = mod_TB_key.Text
End If
'modModulo = modKey Mod 255
mod_TB_mod.Text = modModulo
For i = 0 To modByte.GetUpperBound(0)
counter += 1
ReDim Preserve modConverted(counter - 1)
modConverted(counter - 1) = (modByte(i) + modKey) Mod 255 'formula used
Next
mod_Tb_enc.Text = String.Join(" ", modConverted)
For i = 0 To modConverted.GetUpperBound(0)
counter += 1
ReDim Preserve modchar(counter - 1)
modchar(counter - 1) = ChrW(modConverted(i))
mod_TB_encText.Text = mod_TB_encText.Text & (modchar(counter - 1))
Next
解密也有相同的代碼,而唯一改變的事情就是用「modByte(I)的公式 - modKey國防部255「將」+「改爲」 - 「。
這是我的代碼爲 「轉換」
Dim counter As Integer = 0
modValue = mod_TB_Input.Text
For Each ch As Char In modValue
counter += 1
ReDim Preserve modByte(counter - 1)
modByte(counter - 1) = Asc(ch)
Next
mod_TB_convert.Text = String.Join(" ", modByte)
側面說明:'國防部255'似乎不那麼正確的,因爲你有隻從'範圍0-254'的值時,你失去了'255'不知道的範圍內。數據允許你容忍在你的情況下丟失'255' – Ian
@Ian但網站上的ascii圖表範圍從0-255 但字符從3開始2到255 – dadadadaryl
你知道'255 Mod 255'產生'0',不是嗎? – Ian