[英]Convert Encryption Algorithm from VB.NET to Java (Android)
我正在使用以下算法對VB.NET中的字符串進行加密和解密,並希望在Android中也執行相同的方法。 誰能告訴我類似的Android(Java)算法
加密:
Private Function decryptStr(ByVal key As String, ByVal enc As String) As String
Try
DES.Key = Hash.ComputeHash(System.Text.ASCIIEncoding.ASCII.GetBytes(key))
DES.Mode = System.Security.Cryptography.CipherMode.ECB
Dim DESDecrypter As System.Security.Cryptography.ICryptoTransform = DES.CreateDecryptor
Dim Buffer As Byte() = Convert.FromBase64String(enc)
respass = System.Text.ASCIIEncoding.ASCII.GetString(DESDecrypter.TransformFinalBlock(Buffer, 0, Buffer.Length))
Return respass
Catch ex As Exception
Return enc
End Try
End Function
解密:
Public Function decryptStr(ByVal encrypted As String, ByVal key As String) As String
Try
DES.Key = Hash.ComputeHash(System.Text.ASCIIEncoding.ASCII.GetBytes(key))
DES.Mode = System.Security.Cryptography.CipherMode.ECB
Dim DESEncrypter As System.Security.Cryptography.ICryptoTransform = DES.CreateEncryptor
Dim Buffer As Byte() = System.Text.ASCIIEncoding.ASCII.GetBytes(encrypted)
respass = Convert.ToBase64String(DESEncrypter.TransformFinalBlock(Buffer, 0, Buffer.Length))
Return respass
Catch ex As Exception
Return encrypted
End Try
End Function
Cipher.getInstance("DES/ECB/PKCS5Padding")
String.getBytes(key, Charset.forName("ASCII"))
使用String.getBytes(key, Charset.forName("ASCII"))
和new String(keyData, Charset.forName("ASCII"))
MessageDigest.getInstance("MD5")
或"SHA1"
之類的技巧。 new SecretKeySpec(<my 8 byte byte array>, "DES")
,即可創建密鑰 如果您在多個地方使用字符編碼,只需創建一個常量:
private static final Charset ASCII = Charset.forName("ASCII");
獲取字節數組的一部分的新方法是:
Arrays.copyOfRange(byte[] original, int from, int to): byte[]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.