C语言数字加密

C语言数字加密,第1张

/*

输入1个四位数,将其让唯加密后输出。

方法是将该数每一位上的数字加9,然后除以10取余,做为该位上的新数字,最后将第坦冲培1位和第3位上的数字互换,第2位和第4位上的数字互换,组成加密后的新数。

例:括号内是说明

输入

1257

输出

The encrypted number is 4621(每一位上的数字加9除以10取余后,得0146,交换后得到4601)

*/

#include <stdio.h>

int main( )

{

int number, digit1, digit2, digit3, digit4, newnum

scanf("%d", &number)

digit1 = number/1000

digit2 = (number - 1000 * digit1)/100

digit3 = (number - 1000 * digit1 - 100 * digit2)/10

digit4 = number - 1000 * digit1 - 100 * digit2 - 10 * digit3

digit1 += 9

digit1 %= 10

digit2 += 9

digit2 %= 10

digit3 += 9

digit3 %= 10

digit4 += 9

digit4 %= 10

//第三位数是判昌1的情况不做考虑

newnum = digit3 * 1000 + digit4 * 100 + digit1 * 10 +digit2

printf("The encrypted number is %d\n", newnum)

return 0

}

#include <stdio.h>

void main()

{

int a[5] /* 存储各位上的数字 */

int num, temp, encripy/* num是要输入的数,temp是交换时用来存储临时值,encripy是加密后的数据 */

int i

do

{

printf("Please input the number:")

scanf("%d",&num)

if(!(num/10000 !=0 &&num/100000==0))

printf("Data error!\n")

}while(!(num/10000 !=0 &&num/100000==0))

a[0] = num/10000%10/* 求各位上的数字 */

a[1] = num/1000%10

a[2] = num/100%10 /* 百位上的数字 */

a[3] = num/10%10/* 十位上的数字 */

a[4] = num%10 /* 个位上的数字 */

for(i = 0i <5++i) /* 开始加密 */

a[i] = (a[i] + 8)%10

temp = a[0] /* 交换位置开橘并始 */

a[0] = a[3]

a[3] = temp

temp = a[1]

a[1] = a[2]

a[2] = temp /* 交换位置结衡伍册束同时加密结束 */

encripy = a[0]*10000 + a[1]*1000 + a[2]*100 + a[3]*10 + a[4] /* 加密后的数据 */

printf("\nThe scourse number: %d\n", num)/* 输出原数据 */

printf("\nEncripy the number: %d\n\咐宏n", encripy) /* 输出加密后的数据 */

}

在VC6.0成功运行,希望对你有帮助!

#include

#include

main()

{

intkey

charch

printf("\n请输入密钥:")

scanf("%d",&key)

printf("得到对应明文如下:")

while((ch=getchar())!='\r')

(ch+key)>122?putchar(ch-122+33+key):

((ch+key)<33?putchar(ch+122+key):putchar(ch+key))

}

输入输出如下:

请输入密钥:20addse

得到对应明文如下:uxx.y

你先输入一个任意的整数,如20,然后在键盘上输入一段任意的字符如addse

按回车键结束,就会得到结果如:uxx.y

下面是另一组输入输出竖亮辩:

请输入密钥:35asjRYIRER!@#$^^*&

得到键拍对应明文如下:+=4u#luhuDcFG((MI-

具体是如何加余缺密,你应该能看懂,就是用一个三目运算符?:控制。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12560532.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存