-2
Ich habe einen Code in dot net für die Verschlüsselung und Entschlüsselungsmethoden geschrieben. Ich muss dies in Java implementieren. Der Code sollte sowohl Verschlüsselungs- als auch Entschlüsselungsmethoden haben.MD5 Hash Base 64 Konvertierung
Private DES As New TripleDESCryptoServiceProvider
Private MD5 As New MD5CryptoServiceProvider
Private even As Integer = 1 'สำหรับบวกเพิ่มไปใน private key ของเดือนที่เป็นเลขคู่
Private odd As Integer = 2 'สำหรับบวกเพิ่มไปใน private key ของเดือนที่เป็นเลขคี่
Private Property key() As String
Get
Return GetKey()
End Get
Set(ByVal value As String)
End Set
End Property
Private Function MD5Hash(ByVal value As String) As Byte()
Return MD5.ComputeHash(ASCIIEncoding.ASCII.GetBytes(value))
End Function
Private Function GetKey() As String
Dim yyyy As Integer = Year(Now)
If yyyy > 2500 Then
yyyy -= 543
End If
Dim mm As String = Right("0" & Month(Now), 2)
Dim dd As String = Right("0" & Day(Now), 2)
Dim key As Integer = dd & mm & yyyy
If CInt(mm) Mod 2 = 0 Then
key += even
Else
key += odd
End If
Return key
End Function
Public Function Encrypt(ByVal stringToEncrypt As String) As String
DES.Key = MD5Hash(key)
DES.Mode = CipherMode.ECB
Dim Buffer As Byte() = UnicodeEncoding.Unicode.GetBytes(stringToEncrypt)
Return Convert.ToBase64String(DES.CreateEncryptor().TransformFinalBlock(Buffer, 0, Buffer.Length))
End Function
Public Function Decrypt(ByVal encryptedString As String) As String
Try
DES.Key = MD5Hash(key)
DES.Mode = CipherMode.ECB
Dim Buffer As Byte() = Convert.FromBase64String(encryptedString)
Return UnicodeEncoding.Unicode.GetString(DES.CreateDecryptor().TransformFinalBlock(Buffer, 0, Buffer.Length))
Catch ex As Exception
Return "Invalid Key, Decryption Failed."
End Try
End Function
Verwenden DER nicht, es ist nicht sicher und wird von AES ersetzt worden, die die Verwendung nicht schwieriger ist. 3DES sollte nicht für neue Arbeiten verwendet werden, verwenden Sie erneut AES. – zaph