c算法-数字加密解密
来源:互联网 发布:pconline软件 编辑:程序博客网 时间:2024/04/30 07:47
题目及代码:
/** 题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。 **/#include <stdio.h>void encryptNumber(int *a){//加密 // 交换1<->4,2<->3,其实就是逆序 int temp1,temp2; for (int i=0; i<2; i++) {//两次循环就搞定!! temp1=(a[i]+5)%10; temp2=(a[3-i]+5)%10; a[i]=temp2; a[3-i]=temp1; } }void decryptNumber(int *a){//解密// 如果某位上的数<5,那么就是原来的数一定+5>10// 如:原来是1036,加密后--》1856,因为1<5,所以未逆序前应是1+10-5=6// 否则的话如8>5,所以未逆序前应是8-5=3 int temp1,temp2; for (int i=0; i<2; i++) {// 分情况讨论 a[i]<5 or a[i]>=5 temp1=a[i]<5?a[i]+5:a[i]-5; temp2=a[3-i]<5?a[3-i]+5:a[3-i]-5; a[i]=temp2; a[3-i]=temp1; }}int main(int argc, const char * argv[]) { int Number=1234;//待加密四位整数 int a[4]={0};//将这个四位数字存储在数组中 for (int i=3; i>=0; i--) {//填充数组 a[i]=Number%10; Number/=10; }// 打印--加密前 printf("加密之前:\n"); for (int i=0; i<4; i++) { printf("%d ",a[i]); }// 调用加密函数 encryptNumber(a);// 打印--加密后 printf("\n加密之后:\n"); for (int i=0; i<4; i++) { printf("%d ",a[i]); }// 调用解密函数 decryptNumber(a);// 打印--解密后 printf("\n解密之后:\n"); for (int i=0; i<4; i++) { printf("%d ",a[i]); } return 0;}
运行:
0 0
- c算法-数字加密解密
- RC加密解密算法C源代码
- RC加密解密算法C源代码
- 一个最简单的加密解密算法(纯数字)
- 对url加密的加密解密算法,这样的加密结果只有数字和字母
- [C/C++]基础字符串的加密解密算法
- 【加密】DES加密解密算法
- Java加密解密算法-AES加密解密
- Java加密解密算法-Base64加密解密
- Java加密解密算法-MD5加密解密
- Java加密解密算法-DES加密解密
- Java加密解密算法-PBE加密解密
- C#加密解密算法
- TripleDES加密、解密算法
- TripleDES加密、解密算法
- TripleDES加密、解密算法
- TripleDES加密、解密算法
- TripleDES加密、解密算法
- 如何保证代码质量
- jrebel
- android 给activity去标题
- 30多条mysql数据库优化方法,千万级数据库记录查询轻松解决
- mysql编码设置(解决中文乱码)
- c算法-数字加密解密
- angularjs实现下拉加载更多
- Mac Misc
- centos tar压缩与解压缩命令大全
- Tengine介绍
- CodeForces 579C A Problem about Polyline[数学]
- 获取本地IP
- 小强的HTML5移动开发之路(8)——坦克大战游戏2
- 关于ARM的一些简介