ファイルを暗号化したい。私はXORを使ってそれを暗号化します。しかし、問題は、私はそれを暗号化することができますが、私はそれを復号化するとき、それは私に異なる結果(いない元のファイル)を与える暗号化と復号化時にXOR暗号化の結果が異なる
ここで私は
Public Function Encrypt(ByVal txt As String, ByVal pass As String) As String
Dim mem() As Byte
mem = StrConv(txt, vbFromUnicode)
For i = 0 To UBound(mem)
mem(i) = Asc(mem(i)) Xor Asc(Mid(pass, (i Mod Len(pass)) + 1, 1))
Next i
Encrypt = StrConv(mem, vbUnicode)
Erase mem
End Function
Public Function Decrypt(ByVal txt As String, ByVal pass As String) As String
Dim mem() As Byte
mem = StrConv(txt, vbFromUnicode)
For i = 0 To UBound(mem)
mem(i) = Asc(mem(i)) Xor Asc(Mid(pass, (i Mod Len(pass)) + 1, 1))
Next i
Decrypt = StrConv(mem, vbUnicode)
Erase mem
End Function
Private Sub Form_Load()
Enkrip = Encrypt(txt.LoadFile("C:\mom.txt"), "FROM YOUR SON")
dekrip = Decrypt(Enkrip, "FROM YOUR SON")
MsgBox Enkrip & vbCrLf & dekrip
End Sub
値を使用するコードがありますdekripのCの元の内容でなければなりません:\ mom.txtが、それは私もこのコードを試してみました
異なる結果を返し、それがうまく
Private Sub Form_Load()
Data = "A"
pass = "B"
enkrip = Chr(Asc(Data) Xor Asc(pass))
dekrip = Chr(Asc(enkrip) Xor Asc(pass))
MsgBox enkrip & vbCrLf & dekrip
End Sub
の作品
コードを修正するにはどうすればよいですか?あなたが暗号化にXORを使用しているとき、一つには
おかげ
コードをステップ実行し、値を調べて、16進数で調べることをお勧めします。文字エンコーディングと値を理解するのに時間をかけてください。 – zaph