编写一个数据加密
编写一个数据加密,数据是小于8位的整数,为了确保安全,在传递过程中需要加密,加密规则如下:首先将数据倒序,然后将每位数字都加上5,再用和除以10的余数代替该数字,最后将第一位和最后一位数字交换。
2019-05-20 16:07
2019-05-20 16:17
程序代码:#include <stdio.h>
unsigned foo( unsigned n )
{
unsigned b0 = (n/1%10 + 5)%10;
unsigned b1 = (n/10%10 + 5)%10;
unsigned b2 = (n/100%10 + 5)%10;
unsigned b3 = (n/1000%10 + 5)%10;
unsigned b4 = (n/10000%10 + 5)%10;
unsigned b5 = (n/100000%10 + 5)%10;
unsigned b6 = (n/1000000%10 + 5)%10;
return b0*1 + b5*10 + b4*100 + b3*1000 + b2*10000 + b1*100000 + b6*1000000;
}
void test( unsigned n )
{
printf( "%7u --> %7u\n", n, foo(n) );
}
int main( void )
{
test( 0 );
test( 123 );
test( 1234567 );
}
2019-05-20 16:28
程序代码:/*
编写一个数据加密,数据是小于8位的整数,为了确保安全,在传递过程中需要加密,加密规则如下:
1.首先将数据倒序,
2.然后将每位数字都加上5,
3.再用和除以10的余数代替该数字,
4.最后将第一位和最后一位数字交换。
*/
#include<stdio.h>
int digit(long long p);//判断位数
int main()
{
long long p;//p用于存储密码
int n;//n用于存储所输入密码的位数
printf("请输入密码:");
scanf("%lld",&p);
n=digit(p);
int arr[n];
for(int i=0;i<n;i++)
{
arr[i]=(p%10+5)%10;//步骤1 2 3可以用这一个式子解决
p/=10;
}
int temp;
temp=arr[0];
arr[0]=arr[n-1];
arr[n-1]=temp;//至此完成第四个步骤,交换首末位的值
for(int i=0;i<n;i++)
{
printf("加密后的密码是:%d",arr[i]);//输出加密后的密码
}
printf("\n");
return 0;
}
int digit(long long p)
{
int count=0;
long long temp;
temp=p;
while(temp!=0)
{
count++;
temp/=10;
}
return count;
}

2019-05-20 21:34
2019-05-21 08:40