-1 c# encryption hash
好吧,一周前我开始使用c#,我有点困惑.
我从加密开始,基本上是哈希和盐.
我的老师给了我们这个周末做的"功课",我和我的所有伙伴都非常困惑.
我有这个简单的代码:
练习包括"解密"散列密码(使用SHA256managed进行哈希处理),我们知道它是一个4个字符的数字.
我尝试使用循环并逐个解密所有字符,但我卡住了,我不知道如何继续.
如果你能帮助我,我真的很感激.
谢谢!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Security.Cryptography;
using System.IO;
namespace Examen
{
class Program
{
static void Main(string[] args)
{
string hashed_password = "YOSGtSkJ41KX7K80FEmg+vme4ioLsp3qr28XU8nDQ9c=";
Console.ReadLine();
}
}
}
Run Code Online (Sandbox Code Playgroud)
哈希是一种单向函数.给定密码'1805',您将获得'2DOrd5wHHjYbtrSvQ + SyTH6HUDID5z + XV/cV8aYOSzs ='的哈希值.
你不能倒退:给定'2DOrd5wHHjYbtrSvQ + SyTH6HUDID5z + XV/cV8aYOSzs ='的哈希值,你无法计算'1805'的密码.
但是,您可以尝试每个可能的密码,并查看每个密码的哈希值.然后,您有一个所有可能的哈希列表,所有可能的密码从'0000'到'9999'.在这种情况下,哈希列表中的某个位置是您感兴趣的:'YOSGtSkJ41KX7K80FEmg + vme4ioLsp3qr28XU8nDQ9c ='.
它应该花费你的程序不到一秒钟来发现密码.
请注意,您的程序必须使用与密码相同的格式对数据进行哈希处理,密码是8字节的数据,采用UTF-16LE编码.确保您使用与密码一样的哈希相同的数据格式进行哈希处理,否则您将永远找不到匹配项.
| 归档时间: |
|
| 查看次数: |
8155 次 |
| 最近记录: |