![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法与结构
文章平均质量分 94
carcarrot
这个作者很懒,什么都没留下…
展开
-
.Net实现SCrypt Hash加密
方案1 (加密后存储“算法设置”、“盐(随机值)”、“Hash值”,以“$”分隔)://Nuget引入SCrypt.NET库//该库的SCrypt加密会得到包含“算法设置、盐(是个随机数)、Hash”一起的值,并以“$”分隔//由于每次盐是随机产生的,所以每次对同一明文加密得到的值并不相同,//但由于加密后的信息存储了算法设置及盐信息,所以Compare方法中可以利用这些信息再次对明文进行运算而得到相同的Hash值进行匹配。原创 2024-06-07 11:16:03 · 659 阅读 · 0 评论 -
密钥派生算法介绍 及 PBKDF2(过时)<Bcrypt(开始淘汰)<Scrypt< Argon2(含Argon2d、Argon2i、Argon2id)简介
密钥派生函数(Key Derivation Function)就是从一个密码产生出一个或多个密钥,具体就是从一个master key,password或者passphrase派生出一个或多个密钥,派生的过程使用PRF(Pseudo Random Function)。是一种实现key stretching(密钥延长算法,即一种更慢的哈希算法,用于将初始密钥转换成增强密钥,在计算过程中刻意延长时间或者消耗空间,这样有利于保护弱密码)的方法。●最简单的KDF可以直接使用某种密码学散列算法,如:SHA256。原创 2024-04-19 20:22:04 · 1059 阅读 · 0 评论 -
Java的Hash算法及相应的Hmac算法
哈希算法(Hash)又称摘要算法(Digest),它的作用是:对任意一组输入数据进行计算,得到一个固定长度的输出摘要。哈希算法最重要的特点就是:●相同的输入一定得到相同的输出;●不同的输入大概率得到不同的输出。所以,哈希算法的目的:为了验证原始数据是否被篡改。此工具类可以有效帮助实现其他hash算法相同的功能//将字节数组转换为16进制字符串//将字节数组转换为2位16进制字符串//按照MD5进行消息摘要计算(哈希计算)原创 2024-04-19 18:39:27 · 652 阅读 · 0 评论 -
浅述.Net中的Hash算法(顺带对称、非对称算法)
对称加密算法(只有一个私钥,比如DES、AES);非对称加密算法(公钥与私钥,比如RSA);Hash算法(任意长度的输入都转换为固定长度的“哈希值”字符串比如MD5、SHA-1、SHA-256、SHA-384、SHA-512)原创 2024-04-10 14:03:32 · 611 阅读 · 0 评论 -
彻底理解0-1背包问题
0-1背包问题给定n个重量为w1、w2、w3、…、wn,价值为v1、 v2、v3、 …、vn的物品和容量为C的背包,求这个物品中一个最有价值的子集,使得在满足背包的容量的前提下,包内的总价值最大0-1背包问题指的是每个物品只能使用一次递归方法首先我们用递归的方式来尝试解决这个问题我们用F(n,C)表示将前n个物品放进容量为C的背包里,得到的最大的价值。我们用自顶向下的角度...转载 2019-11-05 10:28:01 · 2275 阅读 · 0 评论