c - C 中的简单加密函数

标签 c encryption

我想创建一个简单的加密算法,但我还做不到。当我运行这个程序时,它在屏幕上打字

"Name: John Nash, Cryptioned Data: John Nash, Decryptioned Data: John Nash"

How can I solve this problem? Where am I making a mistake?

#include<stdio.h>


char *ecrypt(char data[]);
char *decrypt(char data[]);

int i; // Global variable...

void main(void)
{
    char name[] = "John Nash",*data_encryptioned,*data_decryption;
    data_encryptioned = ecrypt(name);
    data_decryption = decrypt(data_encryptioned);
    printf("Name: %s, Cryptioned Data: %s, Decryptioned Data: %s\n",name,data_encryptioned,data_decryption);
}

char *ecrypt(char data[])
{
    for(i=0;data[i]!='\0';i++)
    {
        data[i]+=i+12;
    }
    return &data[0];
}

char *decrypt(char data[])
{
    for(i=0;data[i]!='\0';i++)
    {
        data[i]-=(i+12);
    }
    return &data[0];
}

最佳答案

您正在打印在打印前加密和解密的相同缓冲区。因此,要么制作加密字符串的副本,要么分步打印它们以查看过程:

    printf("%s\n", name);
    data_encryptioned = ecrypt(name);
    printf("Cryptioned Data: %s\n",data_encryptioned);
    data_decryption = decrypt(data_encryptioned);
    printf("Decryptioned Data: %s\n",data_decryption);

关于c - C 中的简单加密函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34464920/

相关文章:

java - 如何在Java中解密私钥(不使用BC openssl)

php - "zero knowledge"mysql数据库加密

asp.net - 在 ASP .NET 2.0 和 SQL Server 2005 中加密 Salary 值

php - 在nodejs中使用初始向量进行aes-256-cbc加密解密

java - Java 中 PHP 的 crypt 函数的等价物

c - 如何在 C 代码中包含存档文件

c - 防止 "ld -wrap "循环引用

c - 优化C代码

c - 动态链表,链接有问题

c - nameser_compat.h 是什么,为什么不包括在内?