zoukankan      html  css  js  c++  java
  • 15.字符串用密码加密

    运行结果:

    源代码:

     1 #include <stdlib.h>
     2 #include <stdio.h>
     3 #include <string.h>
     4 using namespace std;
     5 
     6 //亦或加密解密都是同一个函数
     7 //           待加密       密码    长度
     8 void jiami(char *src, char *mi, int len)
     9 {
    10     //获取总长度
    11     int srcLen = len;
    12     //获取密码长度
    13     int miLen = strlen(mi);
    14     //求出待加密的数据被密码长度整除的倍数
    15     int zheng = srcLen / miLen;
    16     //求出待加密的数据被密码长度整除的余数
    17     int yu = srcLen % miLen;
    18 
    19     //加密
    20     for (int i = 0; i < zheng; i++)
    21     {
    22         for (int j = 0; j < miLen; j++)
    23         {
    24             src[i*miLen + j] ^= mi[j];
    25         }
    26     }
    27 
    28     //余数部分加密,如果没有余数则不执行
    29     for (int i = 0; i < yu; i++)
    30     {
    31         src[miLen*zheng + i] ^= mi[i];
    32     }
    33 }
    34 
    35 void main()
    36 {
    37     char src[100] = "日暮苍山远,天寒白屋贫。柴门闻犬吠,风雪夜归人。";
    38     int len = strlen(src);
    39     printf("待加密的数据:%s
    ", src);
    40     char mi[4] = "123";
    41     jiami(src,mi,len);
    42     printf("加密后的数据:%s
    ", src);
    43     jiami(src, mi, len);
    44     printf("解密后的数据:%s
    ", src);
    45     system("pause");
    46 }
  • 相关阅读:
    [COCI2013]DLAKAVAC
    [TJOI2013]最长上升子序列
    AGC040E Prefix Suffix Addition
    AGC010E Rearranging
    AGC021F Trinity
    AGC002F Leftmost Ball
    JOISC2019D ふたつのアンテナ
    LOJ6210 「美团 CodeM 决赛」tree
    Luogu P3781 [SDOI2017]切树游戏
    Problem. M
  • 原文地址:https://www.cnblogs.com/xiaochi/p/8366292.html
Copyright © 2011-2022 走看看