2017-05-14 5 views
-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 
+1

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

Antwort