首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >哈希竞猜游戏系统开发成熟功能丨哈希竞猜游戏现成源码成品模式

哈希竞猜游戏系统开发成熟功能丨哈希竞猜游戏现成源码成品模式

原创
作者头像
VC_MrsHu288
发布2022-06-28 16:13:42
1750
发布2022-06-28 16:13:42
举报

  什么是哈希算法呢?简单地讲,他是一种为任意大小信息创建一种非常小且固定长度的指纹的方法。哈希算法也称作散列函数。

  毫不夸张的说,没有哈希算法就没有区块链的成功,它是区块链的基石。

  在区块链中信息的指纹高频率的作为信息的指针使用。根据指纹就可以锁定信息,既可以保证信息的不可篡改性,也能用于定位信息,方便读取和校验信息。

  NET 6中哈希算法的简化用法

  Intro

  微软在.NET 6中引入一些更简单的API来使用HMAC哈希算法(MD5/SHA1/SHA256/SHA384/SHA512)

  微软的叫法叫做HMAC One-Shoot method,HMAC算法在普通的哈希算法基础上增加了一个key,通过key提升了安全性,能够有效避免密码泄露被彩虹表反推出真实密码,JWT(Json Web Token)除了可以使用RSA方式外也支持使用HMAC。

  New API

  新增的API定义如下:

  namespace System.Security.Cryptography{

  public partial class HMACMD5{

  public static byte[]HashData(byte[]key,byte[]source);

  public static byte[]HashData(ReadOnlySpan<byte>key,ReadOnlySpan<byte>source);

  public static int HashData(ReadOnlySpan<byte>key,ReadOnlySpan<byte>source,Span<byte>destination);

  public static bool TryHashData(ReadOnlySpan<byte>key,ReadOnlySpan<byte>source,Span<byte>destination,out int bytesWritten);

  }

  public partial class HMACSHA1{

  public static byte[]HashData(byte[]key,byte[]source);

  public static byte[]HashData(ReadOnlySpan<byte>key,ReadOnlySpan<byte>source);

  public static int HashData(ReadOnlySpan<byte>key,ReadOnlySpan<byte>source,Span<byte>destination);

  public static bool TryHashData(ReadOnlySpan<byte>key,ReadOnlySpan<byte>source,Span<byte>destination,out int bytesWritten);

  }

  public partial class HMACSHA256{

  public static byte[]HashData(byte[]key,byte[]source);

  public static byte[]HashData(ReadOnlySpan<byte>key,ReadOnlySpan<byte>source);

  public static int HashData(ReadOnlySpan<byte>key,ReadOnlySpan<byte>source,Span<byte>destination);

  public static bool TryHashData(ReadOnlySpan<byte>key,ReadOnlySpan<byte>source,Span<byte>destination,out int bytesWritten);

  }

  public partial class HMACSHA384{

  public static byte[]HashData(byte[]key,byte[]source);

  public static byte[]HashData(ReadOnlySpan<byte>key,ReadOnlySpan<byte>source);

  public static int HashData(ReadOnlySpan<byte>key,ReadOnlySpan<byte>source,Span<byte>destination);

  public static bool TryHashData(ReadOnlySpan<byte>key,ReadOnlySpan<byte>source,Span<byte>destination,out int bytesWritten);

  }

  public partial class HMACSHA512{

  public static byte[]HashData(byte[]key,byte[]source);

  public static byte[]HashData(ReadOnlySpan<byte>key,ReadOnlySpan<byte>source);

  public static int HashData(ReadOnlySpan<byte>key,ReadOnlySpan<byte>source,Span<byte>destination);

  public static bool TryHashData(ReadOnlySpan<byte>key,ReadOnlySpan<byte>source,Span<byte>destination,out int bytesWritten);

  }

  }

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档