以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 字符串加密问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=194454) |
-- 作者:191422411 -- 发布时间:2024/12/11 18:00:00 -- 字符串加密问题 老师们好,在vb.net中如何写出和加密过程,使其加密的字符串和foxtable加密的字符串一致 以下运行正常,但加密后的结果和foxtable的不一样,自无法解密还原,该如何修改哪里。我想用其做一个生成配置信息的小程序 Module Program Sub Main() \' 您提供的密钥和IV Dim Key As String = "a23" \' 密钥长度需要是16、24或32字节 Dim IV As String = "op#" \' IV长度必须是16字节 \' 确保Key和IV的长度正确 Dim keyBytes As Byte() = New Byte(15) {} Dim ivBytes As Byte() = New Byte(15) {} \' 填充Key和IV数组 \'Array.Copy(Encoding.UTF8.GetBytes(Key.PadRight(16, " ")), 0, keyBytes, 0, Math.Min(Key.Length, 16)) \'Array.Copy(Encoding.UTF8.GetBytes(IV.PadRight(16, " ")), 0, ivBytes, 0, Math.Min(IV.Length, 16)) Dim Val1 As String = "龙的传人" Dim Val2 As String = EncryptText(Val1, keyBytes, ivBytes) \'加密 Dim Val3 As String = DecryptText(Val2, keyBytes, ivBytes) \'解密,两个密钥必须和加密的时候相同 Console.WriteLine("加密后:" & Val2) Console.WriteLine("解密后:" & Val3) End Sub \'加密函数 Function EncryptText(ByVal plainText As String, ByVal Key() As Byte, ByVal IV() As Byte) As String Dim encryptProvider As New AesCryptoServiceProvider() encryptProvider.Key = Key encryptProvider.IV = IV Dim inputBytes As Byte() = Encoding.UTF8.GetBytes(plainText) Using encryptor As ICryptoTransform = encryptProvider.CreateEncryptor() Dim encryptedBytes() As Byte = encryptor.TransformFinalBlock(inputBytes, 0, inputBytes.Length) Return Convert.ToBase64String(encryptedBytes) End Using End Function \'解密函数 Function DecryptText(ByVal cipherText As String, ByVal Key() As Byte, ByVal IV() As Byte) As String Dim decryptProvider As New AesCryptoServiceProvider() decryptProvider.Key = Key decryptProvider.IV = IV Dim inputBytes As Byte() = Convert.FromBase64String(cipherText) Using decryptor As ICryptoTransform = decryptProvider.CreateDecryptor() Dim decryptedBytes() As Byte = decryptor.TransformFinalBlock(inputBytes, 0, inputBytes.Length) Return Encoding.UTF8.GetString(decryptedBytes) End Using End Function End Module
|
-- 作者:有点蓝 -- 发布时间:2024/12/12 8:40:00 -- foxtable自带的加解密功能无法和第三方的加解密功能兼容。如果使用第三方的,就全部使用第三方的就好 |