qq_41525202 2020-03-15 14:37 采纳率: 0%
浏览 177

有人会加密解密算法吗。可以帮忙看下嘛

代码如下:
我写的,但是没写出来,不懂咋加密解密。。。
#include
#include

void jiami(){

char str[100];
int i,num;
printf("请输入字符串:");
scanf("%s",str);
printf("当前需加密的字符串:%s",str);
for(i=0;i<strlen(str);i++){
    num=str[i]+i+5;
    if(num>255){
        num=num%255;
        str[i]=num;
    }
}   
printf("加密过的字符串:%d",str);

}
void jiemi(char str[]){

int i,num;  
for(i=0;i<strlen(str);i++){
    num=str[i];
    num=(num-1)*255+num;
    str[i]=num;
} 
printf("解密后的字符串:%s",str); 

}

int main(){
char str[100];
int sign,flag=1;
while(1){

printf("请输入:输入1给字符串加密,输入2给字符串解密,输入3退出系统。");
scanf("%d",&sign);
switch(sign){

    case 1: jiami(); break;
    case 2: jiemi(str); break;
    case 3:  flag=0; break;

    }
  if(flag==0){
    break;
  }  

}

return 0;

}

  • 写回答

1条回答 默认 最新

  • 码农阿豪@新空间 优质创作者: Java、后端开发技术领域 2024-07-25 17:54
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    问题描述:请帮我解答如何对该代码中的加密解密算法进行优化,以保证数据的安全性。 回答:
    1. 对于加密算法的优化:
      • 增加加密密钥:在加密算法中引入密钥,可以增加数据的安全性,使得除了掌握密钥的人外,其他人无法解密数据。
      • 使用更强大的加密算法:可以选择更加安全的加密算法,如AES(高级加密标准)等。
      • 添加数据校验:在加密过程中添加数据校验,可以让解密过程更加安全可靠。
    2. 对于解密算法的优化:
      • 与加密算法相对应,需要在解密算法中增加密钥的处理,保证只有正确的密钥才能解密成功。
      • 使用相同的加密算法进行解密,以保证成对加密和解密算法的一致性。
    3. 代码示例:
      • 下面是对加密解密算法的优化改进方案的示例代码:
    #include <iostream>
    #include <cstring>
    void jiami(char str[], int key) {
        for (int i = 0; i < strlen(str); i++) {
            str[i] = (str[i] + key) % 255;
        }
    }
    void jiemi(char str[], int key) {
        for (int i = 0; i < strlen(str); i++) {
            str[i] = (str[i] - key + 255) % 255;
        }
    }
    int main() {
        char str[100];
        int sign, flag = 1;
        int key = 5;
        
        while (flag) {
            std::cout << "请输入: 输入1给字符串加密,输入2给字符串解密,输入3退出系统。";
            std::cin >> sign;
            
            switch (sign) {
                case 1:
                    std::cout << "请输入字符串:";
                    std::cin >> str;
                    jiami(str, key);
                    std::cout << "加密后的字符串:" << str << std::endl;
                    break;
                case 2:
                    std::cout << "请输入需要解密的字符串:";
                    std::cin >> str;
                    jiemi(str, key);
                    std::cout << "解密后的字符串:" << str << std::endl;
                    break;
                case 3:
                    flag = 0;
                    break;
                default:
                    std::cout << "输入不合法,请重新输入。" << std::endl;
            }
        }
        return 0;
    }
    

    该优化方案增加了密钥参数,保证了加密和解密的一致性,并使用简单的加密算法对数据进行加密和解密操作。

    评论

报告相同问题?