Foxtable(狐表)用户栏目专家坐堂 → 求助,全局代码报错


  共有2029人关注过本帖树形打印复制链接

主题:求助,全局代码报错

帅哥哟,离线,有人找我吗?
wandongliang
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:414 积分:3576 威望:0 精华:0 注册:2016/1/1 20:20:00
求助,全局代码报错  发帖心情 Post By:2020/11/28 21:37:00 [只看该作者]

在全局代码中写了一个函数,是根据他人c#版本改写过来,但是最后的时候出现了报错,请问蓝版可能是哪里写错了?

Public Function AES_decrypt(ByVal encryptedDataStr As String, ByVal key As String, ByVal iv As String) As String
    Dim rijalg As New System.Security.Cryptography.RijndaelManaged
    rijalg.KeySize = 128
    rijalg.Padding = System.Security.Cryptography.PaddingMode.PKCS7
    rijalg.Mode =System.Security.Cryptography.CipherMode.CBC
    rijalg.Key = Convert.FromBase64String(key)
    rijalg.IV = Convert.FromBase64String(iv)
    Dim encryptedData As Byte() = Convert.FromBase64String(encryptedDataStr)
    Dim decryptor As System.Security.Cryptography.ICryptoTransform = rijalg.CreateDecryptor(rijalg.Key, rijalg.IV)
    Dim result As String

    Using msDecrypt As System.IO.MemoryStream = New System.IO.MemoryStream(encryptedData)

        Using csDecrypt As System.Security.Cryptography.CryptoStream = New System.Security.Cryptography.CryptoStream(msDecrypt, decryptor, System.Security.Cryptography.CryptoStreamMode.Read)
            Using srDecrypt As System.IO.StreamReader = New System.IO.StreamReader(csDecrypt)
                result = srDecrypt.ReadToEnd()   '测试显示这里出现问题,提示 填充无效,无法被移除
                'MessageBox.Show("电话号码:" & result)
            End Using
        End Using
    End Using

    Return result
End Function

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105486 积分:536421 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/11/29 20:49:00 [只看该作者]

原c#代码发上来

 回到顶部
帅哥哟,离线,有人找我吗?
wandongliang
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:414 积分:3576 威望:0 精华:0 注册:2016/1/1 20:20:00
  发帖心情 Post By:2020/11/29 23:06:00 [只看该作者]

原c#版本
public string AES_decrypt(string encryptedDataStr, string key, string iv)  
        {  
            RijndaelManaged rijalg = new RijndaelManaged();  
            //-----------------    
            //设置 cipher 格式 AES-128-CBC    
  
            rijalg.KeySize = 128;  
  
            rijalg.Padding = PaddingMode.PKCS7;  
            rijalg.Mode = CipherMode.CBC;  
  
            rijalg.Key = Convert.FromBase64String(key);  
            rijalg.IV = Convert.FromBase64String(iv);  
  
  
            byte[] encryptedData= Convert.FromBase64String(encryptedDataStr);  
            //解密    
            ICryptoTransform decryptor = rijalg.CreateDecryptor(rijalg.Key, rijalg.IV);  
  
            string result;  
              
            using (MemoryStream msDecrypt = new MemoryStream(encryptedData))  
            {  
                using (CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read))  
                {  
                    using (StreamReader srDecrypt = new StreamReader(csDecrypt))  
                    {  
  
                        result;= srDecrypt.ReadToEnd();  
                    }  
                }  
            }  
  
            return result;  
        }

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105486 积分:536421 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/11/30 8:40:00 [只看该作者]

代码没有问题。怎么用这个函数的?确定传入的key和iv是正确的

 回到顶部