C语言之隐藏密码

本文介绍了一段C语言代码,用于实现密码输入时的字符隐藏功能,包括退格键处理,确保用户输入的安全性和隐私。代码使用了getch()函数进行键盘输入检测,适用于需要保护用户密码的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

void shurumima()
{
	char a[20];int i=0;
	while((a[i]=getch())!='\r')
	{
		if(a[i]=='\b')//此处'\b'指退格键
		{
			printf("\b \b");
			i--;
		}
		else
		{
			printf("*");
			i++;
		}
	}
	a[i]='\0';//’\0’是判定字符数组结束的标识,表示这串字符到结尾了('\0'是占有位置的的)
}

这个就是隐藏密码的主要代码,连退格键都考虑进去了。不过要注意,因为使用了getch()函数,所以头文件中要有#include<conio.h>。

在C语言中,由于其直接性和缺乏内置的安全机制,直接隐藏密码通常是不推荐的做法,因为源代码会被公开查看,密码存储在明文形式很容易暴露风险。然而,如果需要处理敏感信息,可以采用以下几种间接的方式: 1. **加密**:将密码先用安全算法(如AES、DES等)加密后再存储。在程序中通过相同的密钥解密。不过这通常在内存中操作,不涉及文件持久化。 ```c #include <stdio.h> #include <string.h> #include <openssl/aes.h> // 示例:使用AES-CBC进行简单的加密 void encrypt(char *password) { const char key[] = "your_secret_key"; // 密钥(实际项目中应从安全来源获取) AES_KEY aes_key; unsigned char iv[AES_BLOCK_SIZE]; // 初始化向量 // 加密过程... } void decrypt(char *encrypted_password) { // 解密过程... } ``` 2. **哈希函数**:对密码应用安全的哈希函数,比如SHA-256,生成固定长度的摘要,而不是保存原始密码。注意,这种方法通常用于密码验证,而不是长期存储。 ```c #include <openssl/sha.h> #include <string.h> void hash_password(char *password, unsigned char hashed[SHA256_DIGEST_LENGTH]) { SHA256((unsigned char*) password, strlen(password), hashed); } char* get_hashed_password() { ... } // 返回已计算好的哈希值 ``` **重要提示**:无论哪种方法,都不能保证绝对的安全,仅能增加破解的难度。在实际生产环境中,应使用专门的密码管理库或服务,并遵循安全最佳实践。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值