VB.NET 中的 AES 加密字符串

2024-02-02

我有一个基于 Visual Basic 2010 的程序。

我想使用自定义关键字和 AES 加密在我们公司网站上生成注册密钥,无论软件是否连接到互联网,这都会解锁软件。

为此,我想使用我将在网站上构建的实用程序将某些用户信息(和验证代码)加密为 AES 加密字符串。然后,我希望我的程序将字符串解密为用户信息和验证代码,然后使用该信息来验证注册密钥。

这让我想到了一个问题:如何以编程方式加密和解密 AES 中的字符串?是否有我可以在某处使用的代码模板或内置方法?


快速的 Google 搜索会带来以下功能:我没有测试它们产生的输出是否正确,但它们似乎可以正确编译。

Public Function AES_Encrypt(ByVal input As String, ByVal pass As String) As String
        Dim AES As New System.Security.Cryptography.RijndaelManaged
        Dim Hash_AES As New System.Security.Cryptography.MD5CryptoServiceProvider
        Dim encrypted As String = ""
        Try
            Dim hash(31) As Byte
            Dim temp As Byte() = Hash_AES.ComputeHash(System.Text.ASCIIEncoding.ASCII.GetBytes(pass))
            Array.Copy(temp, 0, hash, 0, 16)
            Array.Copy(temp, 0, hash, 15, 16)
            AES.Key = hash
            AES.Mode = Security.Cryptography.CipherMode.ECB
            Dim DESEncrypter As System.Security.Cryptography.ICryptoTransform = AES.CreateEncryptor
            Dim Buffer As Byte() = System.Text.ASCIIEncoding.ASCII.GetBytes(input)
            encrypted = Convert.ToBase64String(DESEncrypter.TransformFinalBlock(Buffer, 0, Buffer.Length))
            Return encrypted
        Catch ex As Exception
        End Try
    End Function

Public Function AES_Decrypt(ByVal input As String, ByVal pass As String) As String
        Dim AES As New System.Security.Cryptography.RijndaelManaged
        Dim Hash_AES As New System.Security.Cryptography.MD5CryptoServiceProvider
        Dim decrypted As String = ""
        Try
            Dim hash(31) As Byte
            Dim temp As Byte() = Hash_AES.ComputeHash(System.Text.ASCIIEncoding.ASCII.GetBytes(pass))
            Array.Copy(temp, 0, hash, 0, 16)
            Array.Copy(temp, 0, hash, 15, 16)
            AES.Key = hash
            AES.Mode = Security.Cryptography.CipherMode.ECB
            Dim DESDecrypter As System.Security.Cryptography.ICryptoTransform = AES.CreateDecryptor
            Dim Buffer As Byte() = Convert.FromBase64String(input)
            decrypted = System.Text.ASCIIEncoding.ASCII.GetString(DESDecrypter.TransformFinalBlock(Buffer, 0, Buffer.Length))
            Return decrypted
        Catch ex As Exception
        End Try
    End Function

来源:http://www.l33thackers.com/Thread-VB-NET-AES-Encryption http://www.l33thackers.com/Thread-VB-NET-AES-Encryption

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VB.NET 中的 AES 加密字符串 的相关文章

  • 如何从 AES 加密字符串添加/删除 PKCS7 填充?

    我正在尝试使用 128 位 AES 加密 ECB 来加密 解密字符串 我想知道如何添加 删除 PKCS7 填充 看起来 Mcrypt 扩展可以处理加密 解密 但必须手动添加 删除填充 有任何想法吗 让我们来看看 RFC 5652 加密消息语
  • 无法使用 dataformatstring 格式化日期时间

    由于某种原因 我无法在网格视图中格式化日期文本
  • 错误:查询值的数量和目标字段的数量不相同

    Public Class RoomInfo Dim ValTx As String Dim ValNr As Integer Private Sub cboRoomType DropDown sender As System Object
  • python 和 android 中通过 AES 算法加密和解密

    我有用于 AES 加密的 python 和 android 代码 当我在android中加密文本时 它在python上成功解密 但无法在android端解密 有人有想法吗 Python代码 import base64 import hash
  • VB.NET 中的静态方法实现

    我很困惑Static在 VB NET 中的实现 在 C 中 我们可以创建静态类和静态方法来为我们的应用程序编写实用方法 现在 VB NET 让我们创建Module代替静态类 如果我们在模块中创建一个方法 默认情况下它会变成静态的 但在我的应
  • C# 的最佳替代“错误继续下一步”是什么?

    如果我为 C 代码放置空的 catch 块 它是否与 VB NET 的 On Error Resume Next 语句等效 try C code catch exception 我问这个问题的原因是因为我必须将 VB NET 代码转换为 C
  • 如何在vb.net中对datagridview的3列进行排序

    下面我想对 ProductCode ColorCode 和 Size 列进行排序 请指导 对 大小 列中的信息进行排序 Size Number sequence XS 1 S 2 M 3 L 4 XL 5 XXL 6 2L 7 3L 8 4
  • 数字或货币的字符串格式?

    我需要为每个千给出逗号 所以我用了DataFormatString 0 它运行良好 但当值为0 它正在显示 00 我只想只显示 0 我们怎样才能做到这一点 DataFormatString 0 C0 这将格式化为小数点后 0 位的货币 Da
  • 在 VB.NET 中 a = b = 5 - 不可能吗?

    VB NET 中可以这样做吗a b 5 我知道 也是比较运算符 我的意思是做not结果 例如 如果 b 2 a false b 2 然而 在下面的情况下该怎么做呢 不方便在我的代码中引起了这个问题 一些对象a b z由方法中的 ref 传递
  • 在 VB.Net 中将字节数组转换为整数

    我想知道在 vb net 中将字节数组 长度 4 转换为整数的最佳方法是什么 我知道 BitConverter 但执行函数调用来执行应该可以通过复制 4 字节内存来完成的操作似乎相当浪费 同样 将单 双精度数从二进制表示形式转换为单 双精度
  • Visual Basic - 未将对象引用设置为对象的实例

    我在 VB Net 中收到以下错误 你调用的对象是空的 它在 For 循环末尾突出显示 Next 任何帮助都会很棒 Imports System IO Public Class LoginForm Dim Username As Strin
  • 错误:表达式不产生值

    我尝试将以下 C 代码转换为 VB NET 但在编译代码时出现 表达式不产生值 错误 C Code return Fluently Configure Mappings m gt m FluentMappings AddFromAssemb
  • AES 128 CBC 蒙特卡罗测试

    我正在 AES 128 CBC 上执行 MCT 如中所述http csrc nist gov groups STM cavp documents aes AESAVS pdf http csrc nist gov groups STM ca
  • Sub New() 在此上下文中无法访问,因为它是“Friend”

    那么这是什么意思以及如何解决它 如果我将 New 关键字放在下面的行中 则会出现此消息 如果删除它 我会在运行时收到错误消息 提示我需要使用 New 我究竟做错了什么 Dim oPS As AeccPointStyle New AeccPo
  • .net 的自动完成文本框,支持分隔符

    我正在开发一个应用程序 它需要一个带有多个单词的自动完成 建议 下拉 的文本框 由空格等分隔符分隔 就像 StackOverflow 中的标签文本框一样 例如 我开始输入 app 它应该显示建议列表中以以下内容开头的所有单词app 当我输入
  • 将 AddressOf 传递给 VB.NET 中的函数以使用 AddHandler

    我需要将一个函数的引用传递给 VB NET 中的另一个函数 如何才能做到这一点 我的函数需要在内部使用 AddHandler 为此我需要向它传递一个处理函数 我下面的代码显然不起作用 但它传达了我需要的想法 Public Function
  • .NET - 有没有一种方法可以以编程方式填充强类型数据集中的所有表?

    我有一个 SQL Server 数据库 已为其创建了强类型数据集 使用 Visual Studio 2008 中的数据集设计器 因此所有适配器和选择命令等都是由向导为我创建的 这是一个小型数据库 其中大部分是静态数据 因此我想在启动时将该数
  • MsgBox 和 MessageBox.Show 有区别吗?

    以下两者有区别吗 msgbox messagebox show 有些教程使用 msgbox 有些教程使用另一个 messagebox show 我看到两者都可以有可编辑的样式 但我想知道 为什么有两个 是为了适应老程序员 他们学习过旧版本的
  • 将 DataTable 的单列转换为 CSV

    使用 VB NET 将 DataTable 的单列转换为 CSV 的最简洁方法是什么 这些值是整数 所以我不需要担心字符转义或编码 转换为 CSV 是什么意思 如果你想生成一个以逗号分隔值的字符串 你可以使用 this tbl是你的数据表和
  • 如何用ListBox制作自定义控件?

    我想用自定义的项目模板制作水平ListBox 所以我制作了它的基本模板 但是 我找不到将 事物 绑定到 WPF XAML 的示例 尤其是在 ListBox 填充了自定义项的情况下 我只是想动态添加 删除列表框中的项目 其中包含图像 标签 组

随机推荐