Linux学习之路(番外--对数据加密)

整型数的数组转换与加密解密
本文介绍了一种将整型数转换为数组的方法,并在此基础上实现了简单的加密和解密算法。通过整型到数组的转换,再进行位移加解密,最后将数组转换回整型数,展示了基本的数据加密流程。

整型数——>数组——>加密——>数组——>整型数

整型数——>数组——>解密——>数组——>整型数

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++;
        len++;
    }
    return len;
    
}


//加密
int JiaMi(int array[] ,int len )
{
    if (array == NULL)
    {
        return -1;
    }
    if (len < 1)
    {
        return -1;
    }
    
    int tmp;
    int i = 0;
    
    for (i = 0; i < len; i++)
    {
        tmp = array[i] + 5;
        array[i] = tmp % 10 ;    
    }

    tmp = array[0];
    array[0] = array[len-1];
    array[len-1] = tmp;
    

}

//解密
int JieMi(int array[] , int len)
{
    if (array == NULL)
    {
        return -1;
    }
    if (len < 1)
    {
        return -1;
    }
    
    int tmp;
    tmp = array[0];
    array[0] = array[len-1];
    array[len-1] = tmp;
    
    int i = 0;
    for (i = 0; i < len ; i++)
    {
        tmp = array[i];
        tmp = tmp + 5;
        if (tmp >= 10)
        {
            array[i] = tmp - 10;
        }
        else 
        {
            array[i] = tmp;
        }
    }
    return 0;
}

 

 


// 数组 -- 整型

int Array_To_Int(int array[],int len)
{
    if (array == NULL)
    {
        return -1;
    }
    
    int i = 0;
    int ten = 1;
    int sum = 0;
    for (i = 0; i < len; i++)
    {
        array[len-1-i] = array[len-1-i]*ten;        
        ten *= 10;
        sum += array[len-1-i];
    }
    
    
    
    return sum;
}


int main()
{
    int num;
    scanf ("%d",&num);
    int array[8] = {0};
    int i = 0;
    int tmp;
    
    //整型转数组
    int len = Int_To_Array(num, array);
    //整型加密
    //JiaMi(array, len);
    //整型解密
    JieMi(array, len);
    //数组转整型
    num = Array_To_Int(array , len);
    
    printf("%d",num);
    
    
    /*printf ("\n");*/
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值