VB.Net 字符串加密类

Public Class Cls_JM

    ‘使用
    ‘Dim Jm As New Cls_JM(2)
    ‘Dim strTmp As String

    ‘Jm.jiemi(strTmp)
    ‘Jm.Jiami(strTmp)

    Private TripleDes As New System.Security.Cryptography.TripleDESCryptoServiceProvider

    Private Function TruncateHash(ByVal key As String, ByVal length As Integer) As Byte()
        Dim sha1 As New System.Security.Cryptography.SHA1CryptoServiceProvider  ‘ Hash the key.
        Dim keyBytes() As Byte = System.Text.Encoding.Unicode.GetBytes(key)
        Dim hash() As Byte = sha1.ComputeHash(keyBytes)  ‘ Truncate or pad the hash.
        ReDim Preserve hash(length - 1)
        Return hash
    End Function

    Sub New(ByVal key As String)  ‘ Initialize the crypto provider.
        TripleDes.Key = TruncateHash(key, TripleDes.KeySize \ 8)
        TripleDes.IV = TruncateHash("", TripleDes.BlockSize \ 8)
    End Sub

    Public Function jiami(ByVal plaintext As String) As String  ‘ Convert the plaintext string to a byte array.
        Dim plaintextBytes() As Byte = System.Text.Encoding.Unicode.GetBytes(plaintext)  ‘ Create the stream.
        Dim ms As New System.IO.MemoryStream  ‘ Create the encoder to write to the stream.
        Dim encStream As New System.Security.Cryptography.CryptoStream(ms, TripleDes.CreateEncryptor(), System.Security.Cryptography.CryptoStreamMode.Write)  ‘ Use the crypto stream to write the byte array to the stream.
        encStream.Write(plaintextBytes, 0, plaintextBytes.Length)
        encStream.FlushFinalBlock()  ‘ Convert the encrypted stream to a printable string.
        Return Convert.ToBase64String(ms.ToArray)
    End Function

    Public Function jiemi(ByVal encryptedtext As String) As String  ‘ Convert the encrypted text string to a byte array.
        Dim encryptedBytes() As Byte = Convert.FromBase64String(encryptedtext)  ‘ Create the stream.
        Dim ms As New System.IO.MemoryStream  ‘ Create the decoder to write to the stream.
        Dim decStream As New System.Security.Cryptography.CryptoStream(ms, TripleDes.CreateDecryptor(), System.Security.Cryptography.CryptoStreamMode.Write)  ‘ Use the crypto stream to write the byte array to the stream.
        decStream.Write(encryptedBytes, 0, encryptedBytes.Length)
        decStream.FlushFinalBlock()  ‘ Convert the plaintext stream to a string.
        Return System.Text.Encoding.Unicode.GetString(ms.ToArray)
    End Function

End Class
时间: 2024-08-06 07:50:05

VB.Net 字符串加密类的相关文章

字符串加密和解密的常类

字符串加密和解密常用类:转载至: http://www.cnblogs.com/malaohu/p/3214136.html   public sealed class EncryptUtils { #region Base64加密解密 /// <summary> /// Base64加密 /// </summary> /// <param name="input">需要加密的字符串</param> /// <returns>

终于实现VB.NET MD5加密

VB.NET MD5加密想着这个功能很普遍,就在网上找了一个代码 '对strSource进行转码,然后再变成大写,再进行加密 Function MD51(ByVal strSource As String, ByVal Code As Int16) As String Dim dataToHash As Byte() dataToHash = (New System.Text.UTF8Encoding).GetBytes(UCase(URLEncode(strSource))) Dim hash

字符串加密以及动手动脑截图

1.字符串的比较: 使用equals()或equalsIgnoreCase()方法比较两字串内容是否相同,使用==比较两字串变量是否引用同一字串对象:Demo: StringEquals.ava compareTo:使用字典法进行比较,返回0表两字串相等,小于返回负值,大于返回正值 regionMatches:比较两字串中的某一部分是否相等.示例:StringCompare.Java 2.参看示例 StringMisc.java,其中展示了以下String类的重要方法与字段 Length():获

OD学习笔记10:一个VB程序的加密和解密思路

前边,我们的例子中既有VC++开发的程序,也有Delphi开发的程序,今天我们给大家分析一个VB程序的加密和解密思路. Virtual BASIC是由早期DOS时代的BASIC语言发展而来的可视化编程语言. VB是由事件驱动的编程语言:就是在可视化编程环境下我们可以绘制一些窗体,按钮,编辑框等控件,然后为这些控件所可能引发的事件如按钮被单击或者被双击编写对应的处理代码. 所有的VB程序几乎都是依赖于一个外部的动态链接库.这个动态链接库的名字是:MSVBVM60.dll(可能有多个版本,但名字都差

JAVA中简单的MD5加密类(MD5Utils)

MD5加密分析: JDK API: 获取对象的API: 加密的API: 1 package cn.utils; 2 3 import java.security.MessageDigest; 4 import java.security.NoSuchAlgorithmException; 5 6 /** 7 * @author CQY13 MD5加密工具类 8 */ 9 public class MD5Utils { 10 11 /** 12 * 获取MD5加密 13 * 14 * @param

Android工具类之字符串工具类,提供一些字符串相关的便捷方法

/** * 字符串工具类,提供一些字符串相关的便捷方法 */ public class StringUtil { private StringUtil() { throw new AssertionError(); } /** * is null or its length is 0 or it is made by space * <p/> * <pre> * isBlank(null) = true; * isBlank("") = true; * isBl

三国kill字符串加密算法分析

[文章标题]:三国kill字符串加密算法 [文章作者]: Ericky [作者博客]: http://blog.csdn.net/hk9259 [下载地址]: 百度下载 [保护方式]: 字符串加密 [作者声明]: 本人水平有限,若有不足错误之处请各位大侠指正 0x1 前言 据说这款游戏的老版本是可以直接修改其中相应的字符串来进行狸猫换太子,从而绕过检验并且达到内购破解的效果,如今时隔一年,该游戏为了防止被篡改或者其他,加强了对自身的加密,尤其把一些关键字符串所保护,强度是否值得起时间的考验,我们

字符串获取类、封装检测数字的方法

1.charAt()方法: 从整个字符串中找到某子字符,即返回指定位置的字符.charAt(str.length).里面的数字最大为字符串长度减一 eg:stringObject.charAt(index):如果参数 index 不在 0 与 string.length 之间,该方法将返回一个空字符串 var str = '妙味课堂'; var str = '妙味课堂'; // alert( str.length ); // alert( str.charAt() ); //默认为第0个 //

c# 基于DES的字符串加密解密

注:由于加密.解密字符串时,需要用到加密类和内存流,所以首先需要在命名空间区域添加System.Security.Cryptography和System.IO命名空间. //自定义的加密字符串 static string encryptKey = "1234"; //字符串加密 static string Encrypt(string str) { DESCryptoServiceProvider descsp = new DESCryptoServiceProvider(); byt