关于.NET Framework 一些哈希加密类的练习

 

 

 MD5CryptoServiceProvider      SHA1CryptoServiceProvider
 HMACMD5                             SHA1Managed
 HMACRIPEMD160                   HMACSHA1
                                             HMASCHA256
                                             HMACSHA384
          

 //HMACSHA512加密类练习
 HMACSHA512 hmacsha512 = new HMACSHA512();

 Byte[] hashdata = hmacsha512.ComputeHash(Encoding.GetEncoding("gb2312").GetBytes(Input));

 StringBuilder Str = new StringBuilder();

 foreach (Byte arg in hashdata) Str.Append(arg.ToString("x2"));
 Console.WriteLine("哈希值为: " + Str.ToString() + "/n长度为: " + Str.Length);

 Str.Remove(0, Str.Length);

 

 Byte[] Key = hmacsha512.Key;

 

 foreach (Byte arg in Key) Str.Append(arg.ToString("x2"));
 Console.WriteLine("密匙为: " + Str.ToString() + "/n长度为: " + Str.Length);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VB.NET(Visual Basic .NET)是Microsoft开发的一种基于.NET框架的编程语言,主要用于Windows应用程序、Web应用和桌面软件的开发。其中,哈希表(Hash Table 或 Dictionary)是一个用于存储键值对的数据结构,提供快速查找的能力,常用于查找重码或数据去重。 如果你想使用VB.NET中的哈希表来判断字符串是否有重码,你可以这样做: ```vb.net Imports System.Collections.Generic Module Module1 Sub Main() Dim hashTable As New Dictionary(Of String, Integer) ' 创建一个哈希表,用String作为键,Integer作为默认值,用来记录每个字符出现的次数 ' 待检查的字符串列表 Dim strList = {"hello", "world", "hello again"} For Each str In strList Dim hashValue = 0 ' 初始化计数器 ' 遍历字符串中的每一个字符 For i As Integer = 0 To str.Length - 1 If Not hashTable.ContainsKey(str(i)) Then ' 如果字符不在哈希表中,则添加并设置值为1 hashTable.Add(str(i), 1) Else ' 如果字符已经在哈希表中,增加计数值 hashValue += hashTable(str(i)) End If Next ' 判断是否有重码,如果所有字符的出现次数加起来大于strList长度,说明有重码 If hashValue <> str.Length Then Console.WriteLine("字符串 '{0}' 有重码", str) Else Console.WriteLine("字符串 '{0}' 没有重码", str) End If Next Console.ReadKey() ' 主程序暂停,等待用户按下回车键 End Sub End Module ``` 在这个例子中,我们遍历输入的字符串,并将每个字符及其出现次数存储到哈希表中。如果某个字符出现的总次数超过其在原始字符串中的位置数量,那么就认为存在重码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值