社区首页 >问答首页 >SHA1哈希码比较失败

SHA1哈希码比较失败
EN

Stack Overflow用户
提问于 2018-08-19 04:48:49
回答 1查看 132关注 0票数 1

我在我的.NET核心应用程序上编写了两个名为MakeHashCompareHash的方法。现在有了MakeHash,我可以成功地转换SHA1代码,但问题是我尝试比较哈希代码的方式总是返回false。这意味着CompareHash方法不能比较普通代码和SHA1代码。你能告诉我如何修复CompareHash,以便它能够在纯文本和SHA1散列代码之间进行比较?我在CompareHash方法中做错了什么?提前感谢

代码语言:javascript
代码运行次数:0
复制
public static string MakeHash(string str)
{  
    // generate a 128-bit salt using a secure PRNG
    byte[] salt = new byte[128 / 8];
    using (var rng = RandomNumberGenerator.Create())
    {
        rng.GetBytes(salt);
    }
    // derive a 256-bit subkey (use HMACSHA1 with 10,000 iterations)
    string hashed = Convert.ToBase64String(KeyDerivation.Pbkdf2(
        password: str,
        salt: salt,
        prf: KeyDerivationPrf.HMACSHA1,
        iterationCount: 10000,
        numBytesRequested: 256 / 8));
    return hashed;
}

public static bool CompareHash(string plainString, string hashString)
{
    if (MakeHash(plainString)==hashString)
    {
        return true;
    }
    else
    {
        return false;
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-19 05:28:16

好吧,如果你需要一些快速的解决方案,而不需要在你的数据库中存储盐,那么你可以尝试使用下面的代码。这对我很有效。但强烈建议使用盐,并在它们之间进行匹配。因为它是关于安全性的,所以您应该小心,并在其中投入更多的精力。我的示例只是为您提供一个想法,而不是用于生产用途。

代码语言:javascript
代码运行次数:0
复制
public static string MakeHash(string value)
        {
            return Convert.ToBase64String(
                System.Security.Cryptography.SHA256.Create().ComputeHash(Encoding.UTF8.GetBytes(value))
                );
        }


        public static bool CompareHash(string plainString, string hashString)
        {
            if (MakeHash(plainString) == hashString)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51914573

复制
相关文章
dotnet 删除只读文件
如果直接通过 File.Delete 删除只读文件会出现没有权限提示,可以先设置文件不是只读然后删除文件
林德熙
2019/03/13
2.8K0
dotnet 删除只读文件
dotnet 删除只读文件
如果直接通过 File.Delete 删除只读文件会出现没有权限提示,可以先设置文件不是只读然后删除文件
林德熙
2022/08/04
1.8K0
Ubuntu下U盘只读文件系统,图标上锁,提示无法修改
Ubuntu下有时候插入U盘,发现不能修改其中的内容。例如不能新建文件和文件夹,不能向U盘中复制文件等,系统提示:只读文件系统。
知忆
2021/06/09
3K0
盘点只读压缩文件系统
在存储容量有限的嵌入式设备上,一般对于系统分区在使用过程中没有数据写入需求,同时希望可以节省存储空间——只读压缩文件系统应运而生。另外,只读压缩文件系统也可用于归档文件。相比tar,zip等压缩软件,只读压缩文件系统的性能和灵活性都更好。Linux早期的只读文件系统有CramFS和SquashFS,以及参考了上述两个文件系统设计的用户态只读压缩文件系统CromFS。另外,最近两年在Android平台上实现商用的EROFS也值得关注。EROFS针对手机使用场景,对读放大和内存占用过多从设计理念上带来了一些新的优化。
233333
2020/10/29
3.4K0
盘点只读压缩文件系统
rm: 无法删除"/mnt/cdrom/
[root@redhatAS6 home]# mount -o loop rhel-server-6.3-x86_64-dvd.iso /mnt/cdrom
py3study
2020/01/07
2.3K0
【6】VScode 无法在终端输入问题,提示:无法在只读编辑器中编辑
2.在设置中输入 run code config 找到里面的 run in terminal 打勾即可,往下滑动几秒就看到了
汀丶人工智能
2022/12/21
7.2K0
【6】VScode 无法在终端输入问题,提示:无法在只读编辑器中编辑
修改目录proc下的tcp_tw_recycle报“只读文件系统”
该错误的原因是因为以只读(ro)方式mount了tcp_tw_recycle所在目录,比如因为目录“/proc/sys”以只读方式mount了:
一见
2020/02/13
1.4K0
fat文件系统查找、删除、创建目录
查找一个文件是通过文件名查找的,对于fat文件系统,可以直接从vfat_lookup函数看
哆哆jarvis
2022/11/21
1.8K0
Linux文件系统只读Read-only file system的快速解决方法
问题描述:上周公司的私有云(底层架构是Openstack+KVM,目前稳定性还不够好,开发团队在改进中)一个计算节点挂掉,之后恢复后发现这个计算节点的所有Linux虚拟机系统都变成只读了,复制文件提示
小小科
2018/05/02
10.1K1
Linux文件系统只读Read-only file system的快速解决方法
linux强制删除只读文件夹,强制删除文件夹linux的方法是什么
之所以对于目录文件的删除加上了强制参数是因为在linux对目录文件的删除是递归式的;
全栈程序员站长
2022/07/01
12.1K0
【君正T31】只读rootfs文件系统squashfs的解压和打包
unsquashfs root-glibc-toolchain4.7.2-1.1.squashfs 会解包到当前目录下的squashfs-root文件夹
TSINGEYE清眸物联
2023/01/04
2K0
Kubernetes容器netns无法删除问题
近日摸鱼,出现问题 在k8s+containerd的环境上删除容器失败,容器一直保持在terminating状态containerd日子显示”failed to check network namespace closed: remove netns:unlinkat *: device or resource busy” ,不影响新创建的容器运行。
王先森sec
2023/04/24
2.3K1
解决kafka无法删除topic问题
使用kafka命令删除某个topic之后,查看集群的topic列表时,被删除的tpoic依然存在
全栈程序员站长
2022/11/03
1.7K0
解决kafka无法删除topic问题
Docker---(9)Docker中容器无法停止无法删除
问题:mysql容器如法停止,无法删除,也无法连接。docker stop,docker kill等命令都无效。
IT云清
2019/01/22
6.5K0
git无法删除本地分支_git如何删除远程分支
转载:https://blog.csdn.net/benben_2015/article/details/79782202
全栈程序员站长
2022/11/07
2.2K0
【君正T31】squashfs格式只读rootfs文件系统的解压和打包
先来安装工具: # 安装mksquashfs工具 apt install mtd-utils # 查看压缩信息 unsquashfs -s root-glibc-toolchain4.7.2-1.1.squashfs # 显示 Found a valid SQUASHFS 4:0 superblock on root-glibc-toolchain4.7.2-1.1.squashfs. Creation or last append time Tue Feb 23 08:42:12 2021 Files
TSINGEYE清眸物联
2022/11/03
1.4K0
Linux系统重启或无故变为只读造成网站无法正常访问的简单临时的做 根目录只读不能写处理:
Linux系统重启或无故变为只读造成网站无法正常访问的简单临时的做 根目录只读不能写处理: 一、 1、mount: 用于查看哪个模块输入只读,一般显示为: /dev/hda1 on / type ext3 (rw) none on /proc type proc (rw) usbdevfs on /proc/bus/usb type usbdevfs (rw) none on /dev/pts type devpts (rw,gid=5,mode=620) /dev/hda5 on /home type ext3 (rw) none on /dev/shm type tmpfs (rw) /dev/hda2 on /usr/local type ext3 (rw) /dev/nb1 on /EarthView/RAW type ext3 (ro)(变为只读了)
拓荒者
2019/03/11
2.2K0
创建只读集合
真正的人生,只有在经过艰难卓绝的斗争之后才能实现。——塞涅卡 在java8中 我们可以使用下面的函数创建只读集合 Collections.unmodifiableCollection(Arrays.asList("")); Collections.unmodifiableList(Collections.singletonList("")); Collections.unmodifiableMap(new HashMap<>(1 << 4)); Collections.unmodifiableSet
阿超
2022/08/17
1.5K0
mysql主从只读
# mysql使用mycat读写分离报错 Connection is read-only. Queries leading to data modification are not allow #
summerking
2022/10/27
3K0
EDB无法删除分区子表的错误
最近某个应用,连接的是EDB数据库,测试环境是EDB 9.2版本,在删除一张inherit方式创建的分区子表(例如主表a,子表b),先用alter table b no herit a删除关联,再drop删除子表,提示无法删除,从错误提示看,主表a要依赖子表b,建议删除主表a,达到删除子表b的效果。可我都删除了主子关系,为什么无法删表?
bisal
2019/02/28
1.7K0

相似问题

修复:如何在从多个文档中获取数据后,将数据再次存储在正确的文档中

14

如何修复输出显示,使其显示正确排序的数据

24

如果未定义,则在获得正确的输出后显示NaN。

12

在=> IllegalStateException身份验证后查询uid文档的修复

11

用mongoose和node.js存储查询后的变量数据

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文