c#记录您的密码 编写一个程序 让用户输入密码加密假设密码是0o01ll,要求把每次用户输入的密码保存到变量pass中,入六次后输入每次输入的密码并退出程序,
时间: 2024-09-24 21:23:04 浏览: 32
基于C#实现的古典密码加密工具设计源码
在C#中,我们可以创建一个简单的控制台应用程序来记录用户的密码,并对其进行加密存储。这里我们将使用SHA256哈希算法对密码进行加密,因为这是常见的密码安全实践。以下是实现这个功能的一个简单示例:
```csharp
using System;
using System.Security.Cryptography;
class PasswordManager
{
static void Main()
{
const int MAX_ENTRIES = 6;
byte[] encryptedPassphrase = null;
char[] passwordToEnter = "0o01ll".ToCharArray();
int entryCount = 0;
Console.WriteLine("欢迎来到密码管理器。请输入您想要存储的密码(最多6次)。");
while (entryCount < MAX_ENTRIES)
{
Console.Write("请输入密码(按Ctrl+C提前退出):");
string input = Console.ReadLine();
if (input == Environment.CommandLine) // 检查是否通过命令行中断
break;
// 将字符串转换为字节数组
byte[] passwordBytes = Encoding.UTF8.GetBytes(input);
// 使用SHA256加密
using var sha256 = SHA256.Create();
encryptedPassphrase = sha256.ComputeHash(passwordBytes);
// 显示加密后的结果
Console.WriteLine($"已加密的密码:{BitConverter.ToHex(encryptedPassphrase)}\n");
// 提示用户是否继续存储
Console.Write("是否继续存储?(y/n): ");
if (!char.TryParse(Console.ReadLine(), out char storeChoice) || storeChoice != 'y')
break;
entryCount++;
}
if (entryCount > 0)
Console.WriteLine($"已存储 {entryCount} 条密码。");
else
Console.WriteLine("未存储任何密码。");
Console.ReadKey(); // 等待用户按下任意键退出
}
}
```
运行此程序,它将提示用户输入密码。每次输入后,密码会被加密并显示出来。如果用户选择不再存储,程序会在六次尝试后结束。
阅读全文