1. 程式人生 > >簡單的給數字加密解密

簡單的給數字加密解密

#include <stdio.h>

// 整型 ----> 陣列
int Int_To_Array(int num, int array[])
{
    int i = 0;
	int len=0;
    
    while (num)
    {
        array[i] = num % 10;//將數字一個一個從後到前給陣列
        num /= 10;
        ++i;  //i++   
        ++len;
    }
	
	return len;
}

// 陣列 ---> 整型
int Array_To_Int(int array[], int len )
{
	int num=0;
	int i ;
	
	for(i = 0; i < len; i++ )
	num = num*10+array[i];//num=num*10+array[i];
	
	return num;
}

//加密
int JiaMi(int array[], int len)
{
	int i;
	int temp;
	
	for (i = 0; i < len; ++i)
        array[i] = (array[i]+5) % 10;//加密規則
    
    temp = array[len-1];
    array[len-1] = array[0];
    array[0] = temp;
} 

//解密
int JieMi(int array[],int len)
{
	int temp;
	int i;
	
	temp = array[len-1];
    array[len-1] = array[0];
    array[0] = temp;

	for (i = 0; i < len; ++i)
        array[i] = (array[i] + 5) % 10;
}

int main()
{
    int num = 12345678;
	int array[8]={0};
	int i;
	
	int len=Int_To_Array(num, array);
	
	for(i = 0; i < len; i++)
		printf("%d",array[i]);
	
	printf("\n-------------\n");
	
	JiaMi(array, len);
	
	for(i = 0; i < len; i++)
		printf("%d",array[i]);
	
	printf("\n-------------\n");
	
	JieMi(array,len);
	
	for(i = 0; i < len; i++)
		printf("%d",array[i]);
	
	printf("\n-------------\n");
	
	num=Array_To_Int(array, len);
	
	printf("%d",num);
	
	printf("\n-------------\n");
	
    return 0;
}

執行結果

在這裡插入圖片描述