Linux C:如何隐藏密码输入的星号? (linux c 密码 星号)

在开发 Linux 应用程序时,常常需要读取用户输入的密码。通常情况下,我们往往会使用 Linux 系统提供的 getch() 函数来读取用户输入的字符,但是这种方式在输入密码时会暴露用户的密码,不仅不安全,并且用户的输入也不够隐私。为了保障用户的密码安全,本文将介绍如何隐藏密码输入的星号。

1. 读取密码的函数

在 Linux C 开发中,我们通常会使用 GCC 来编写代码,在读取密码的过程中,我们可以使用 termios.h 头文件中的属性,而在 Ubuntu 14.04 安装包中,它已经默认集成,因此我们可以直接使用该头文件中的函数实现密码的读取,代码如下:

“`

#include

#include

#include

#include

int getch(void)

{

struct termios tm, tm_old;

int fd = STDIN_FILENO, c;

if (tcgetattr(fd, &tm)

return -1;

}

tm_old = tm;

cfmakeraw(&tm);

if (tcsetattr(fd, TCSANOW, &tm)

return -1;

}

c = getchar();

if (tcsetattr(fd, TCSANOW, &tm_old)

return -1;

}

return c;

}

void getpassword(char *password,int size)

{

int i = 0, ch;

while ((ch = getch()) != ‘\n’)

{

if(ch != ‘\t’ && ch != ‘\b’ && i

{

putchar(‘*’);

*(password + i++) = ch;

}

else if(ch == ‘\b’ && i > 0)

{

putchar(‘\b’);

putchar(‘ ‘);

putchar(‘\b’);

i–;

}

}

*(password + i) = ‘\0’;

}

“`

在代码中,getch() 函数是读取字符的函数,其中使用了 Linux 的 terminals 模块来获得输入字符,这个结构体包含了一系列的常量,如带宽速率、奇偶检验、流控制和硬件控制。通过设备文件文件描述符 fd(设置为 STDIN)来获取终端的属性,然后把该函数阻塞并打开,使用 cfmakeraw(&tm) 设置它为非规范模式,使得输入输出数据直接发送和接收,就像开发实时应用程序一样。最后返回读取到的字符。

getpassword() 函数通过 getche() 函数来避免了明文输入密码的情况,并在每一次输入完一个字符之后输出一个星号,从而避免了明文显示密码的情况。

2. 调用函数实现密码输入

在我们完成上述的代码之后,我们可以使用它来进行密码的输入,然后将其发送到服务器。代码如下:

“`

int mn()

{

char password[10];

printf(“Please enter password: “);

getpassword(password,10);

printf(“\nYour password is %s “, password);

return 0;

}

“`

在代码中,我们可以看到,首先像命令行提示用户输入密码,然后通过调用 getpassword() 函数来读取和隐藏密码,并最后输出结果。

3.

相关问题拓展阅读:

  • c语言编写的程序,在输入密码时,如何加密?
  • Linux中什么是密码占位符

c语言编写的程序,在输入密码时,如何加密?

加密和解密算法是程序编制中的重要一环。试想,如果我们平时使用的腾讯QQ、支付宝支付密码、今日头条账号密码那么轻易就被别人盗取的话,很多不可以预料的事情就会发生!

在现实生活中,我们遇到过太多QQ密码被盗取的前空情况,有的朋友QQ被盗之后,骗子利用朋友间信任骗取钱财埋厅的事情屡见不鲜。支付宝也曾出现过支付宝账户被恶意盗取的事件,对用户利益造成了严重损害!这些在技慧液瞎术上都指向了同一相关问题:软件加密算法的强壮程度。今天,小编利用C语言来简单实现一种加密方法。下面是源代码。

需要说明:程序利用了ascii码值的按照一定规律变换实现加密,对于解密过程,则是加密的逆过程。下面是程序的运行结果。

4190阅读

搜索

编程免费课程300节

初学编程100个代码

java自学一般要学多久

5秒破解excel密码

python必背100源代码

40岁零基础学编程

前言:当今社会是一个信息社会,你的个人信息和聊天记录极有可能被别有用心的人时时刻刻监视着,那么你想不想实现专属于两个人或一个小圈子的人在社交软件上的交流不被任何其他人读懂呢?

下面就给棚颂团大家提供一个原理极其简单程序极其容易实现的C语言文字加密小程序的实现算法。

在键盘上录入了”今天晚上我不回家吃饭了”,将这串字符的ASCLL码全部加1,打印出来是这样的”掘晚晤市嫌臣假接凑负绿”。怎么样,哈哈哈,是不是看完后丈二和尚摸不着头脑?

所以,用这种算法实现对汉字的加密和翻译绝对隐蔽!汉字在计算机中的编码比较复杂,一个汉字在Windows 10系统下的CodeBlocks编译器里占2个字符的位置,我记得我有做过樱友测试,在Cent OS Linux系统下占3个字符的位置。

然而不管一个汉字占几个字符的位置,对每个字符的ASCLL码做加减乘除的运算和逆运算就可以实现对文字的加密和翻译。

下面向大家展示一下源代码(加密算法为将所有字符的ASCLL码加1,翻译算法为将所链橘有字符的ASCLL码减1):

头文件部分:

主函数部分:

下面向大家展示一下加密与翻译的效果:

思考与提高:仅仅将所有字符的ASCLL码加1就实现对文字信息的加密了,会不会很容易被破译呢?请恕我不是密码学专家,这一点我无法回答,但是直观感觉这样加密确实有点简单。

那么我们就可以对字符进行多种更为复杂的处理,比如给所有字符加上一个正负变换的数列、给所有字符加上斐波那契数列等。总之,直观感觉就是越复杂越不容易被破译。

下面向大家展示一下给所有字符加上一个正负变换的数列的加密算法的源代码:

头文件部分:

主函数部分主要是用来调试的,与上面那个简单加密算法的主函数部分相同。

下面向大家展示一下使用这种复杂加密算法加密与翻译的效果:

用了加密程序后,画风是这样的:

#include “stdio.h”

#include “

conio.h

int main()

{

 char tmpc;

 int i = 0;

 tmpc = ‘ ‘; 

 

 简改斗printf(“input password:\n”);

 for(i = 0; i 山简

#include

void main()

{

char c;

while(1)

{

c=getch();

if(c==’\r’) break;

printf(“卖尺*”);

}

}

#include void main() { char str,*p=str; gets(str); while(*p) { if(*p>=’a’ && *p=’a’ && *p

Linux中什么是密码占位符

举几个例子,你就明白了:

1、“#”:数字占位符。只显有意义的零而不显示无意义的零。小数点后数字如大于”#”的数中运量,则按”#”的位数四舍五入。

例:代码:”###.##”,12.1显示为12.10;12.1263显示为:12.13

2、”0”:数字占位符。如果单元格的内容大于占位符,则显示实际数字,如果小于点位符的数量,则用0补足。

例:代码:”00000”。显示为;123显示为00123

代码:”00.000”。消培橘100.14显示为100.140;1.1显示为01.100

3、”@”:文本占位符,如果只使用单个@,作用拿团是引用原始文本,

要在输入数字数据之后自动添加文本,使用自定义格式为:”文本内容”@;要在输入数字数据之前自动添加文本,使用自定义格式为:@”文本内容”。@符号的位置决定了Excel输入的数字数据相对于添加文本的位置。

如果使用多个@,则可以重复文本。

星号

linux c 密码 星号的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux c 密码 星号,Linux C:如何隐藏密码输入的星号?,c语言编写的程序,在输入密码时,如何加密?,Linux中什么是密码占位符的信息别忘了在本站进行查找喔。

香港服务器首选树叶云,2H2G首月10元开通。
树叶云(shuyeidc.com)提供简单好用,价格厚道的香港/美国云服务器和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/157358.html<

(0)
运维的头像运维
上一篇2025-03-16 08:21
下一篇 2025-03-16 08:22

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注