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

加密,就是在输入密码时,让输入的密码以圆点或者是星号的方式显示。... 加密,就是在输入密码时,让输入的密码以圆点或者是星号的方式显示。 展开
 我来答
水清霞明

2020-11-05 · TA获得超过2.5万个赞
知道大有可为答主
回答量:3.7万
采纳率:68%
帮助的人:1240万
展开全部
加密和解密算法是程序编制中的重要一环。试想,如果我们平时使用的腾讯QQ、支付宝支付密码、今日头条账号密码那么轻易就被别人盗取的话,很多不可以预料的事情就会发生!

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

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

4190阅读
搜索
编程免费课程300节
初学编程100个代码
java自学一般要学多久
5秒破解excel密码
python必背100源代码
40岁零基础学编程
帐号已注销
2020-11-05 · TA获得超过9655个赞
知道大有可为答主
回答量:9772
采纳率:20%
帮助的人:289万
展开全部
前言:当今社会是一个信息社会,你的个人信息和聊天记录极有可能被别有用心的人时时刻刻监视着,那么你想不想实现专属于两个人或一个小圈子的人在社交软件上的交流不被任何其他人读懂呢?

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

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

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

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

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

头文件部分:

主函数部分:

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

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

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

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

头文件部分:

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

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

用了加密程序后,画风是这样的:
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
df601562566
2013-10-24 · TA获得超过502个赞
知道小有建树答主
回答量:351
采纳率:100%
帮助的人:337万
展开全部
#include "stdio.h"

#include "
conio.h
"

int main()

{

 char tmpc;

 int i = 0;

 tmpc = ' '; 

 

 printf("input password:\n");

 for(i = 0; i < 6; i++)

 {

 tmpc = getch()();

 printf("*");

 }

 printf("\n");

 return 0;  

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
爱WUDEZHANG
推荐于2017-09-17 · TA获得超过915个赞
知道小有建树答主
回答量:524
采纳率:100%
帮助的人:190万
展开全部
#include<stdio.h>
#include<conio.h>

void main()
{
char c;
while(1)
{
c=getch();
if(c=='\r') break;
printf("*");
}
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
花某同叶某G0
2020-11-05
知道答主
回答量:37
采纳率:0%
帮助的人:1.8万
展开全部
#include void main() { char str[100],*p=str; gets(str); while(*p) { if(*p>='a' && *p<='z' || *p>='a' && *p<='z') { *p+=3; } p++; } printf("%s\n",str);//加密后的字符串 }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式