大學生新聞網,大學生新聞發(fā)布平臺
大學生新聞網
大學生新聞大學生活校園文學大學生村官
社會實踐活動社會實踐經歷社會實踐報告社會實踐總結社會實踐心得
全國排名校友會版軟科排名分類排名本科排名一本排名二本排名專科排名學校地址
求職簡歷職場法則面試技巧職場故事求職招聘大學生就業(yè)
英語學習計算機學習電氣工程機械工程經濟管理建筑設計財務會計
申請書證明書檢討書自薦信演講稿心得體會調查報告讀后感求職信推薦信其它范文

C語言字符串加密和解密算法

在本實例中要求設計一個加密和解密算法。在對一個指定的字符串加密之后,利用解密函數能夠對密文解密,顯示明文信息。加密的方式是將字符串中每個字符加上它在字符串中的位置和一個偏移值 5。以字符串“mrsoft”為例,第一個字符“m”在字符串中的位置為 0,那么它對應的密文是“'m'+0+5",即 r。

算法思想
在 main() 函數中使用 while 語句設計一個無限循環(huán),并定義兩個字符數組,用來保存,明文和密文字符串,在首次循環(huán)中要求用戶輸入字符串,進行將明文加密成密文的操作, 之后的操作則是根據用戶輸入的命令字符進行判斷,輸入 1 加密新的明文,輸入 2 對剛加密的密文進行解密,輸入 3 退出系統。
程序代碼
#include <stdio.h>
#include <string.h>
int main()
{
    int result=1;
    int i;
    int count=0;
    char Text[128]={'\0'};
    char cryptograph[128]={'\0'};
    while(1)
    {
        if(result==1)
        {
            printf("請輸入要加密的明文:\n");
            scanf ("%s",&Text);
            count=strlen(Text);
            for(i=0;i<count;i++)
            {
                cryptograph[i]=Text[i]+i+5;
            }
            cryptograph[i]='\0';
            printf("加密后的密文是:%s\n",cryptograph);
        }
        else if(result==2)
        {
            count=strlen(Text);
            for(i=0;i<count;i++)
            {
                Text[i]=cryptograph[i]-i-5;
            }
            Text[i]='\0';
            printf("解密后的明文是:%s\n",Text);
        }
        else if(result==3)
        {
            break;
        }
        else
        {
            printf("請輸入正確的命令符:\n");
        }
        printf("輸入1加密新的明文,輸入2對剛加密的密文進行解密,輸入3退出系統:\n");
        printf("請輸入命令符:\n");
        scanf("%d",&result);
    }
    return 0;
}
調試運行結果
本實例中,輸入了 I love Xichang College 字符串作為例證,因此輸出是多個加密后的字符串,結果如下所示:
請輸入要加密的明文:
I Love Xichang College
加密后的密文是:N
輸入1加密新的明文,輸入2對剛加密的密文進行解密,輸入3退出系統:
請輸入命令符:
請輸入要加密的明文:
加密后的密文是:Qu}m
輸入1加密新的明文,輸入2對剛加密的密文進行解密,輸入3退出系統:
請輸入命令符:
請輸入要加密的明文:
加密后的密文是:]ojpjxr
輸入1加密新的明文,輸入2對剛加密的密文進行解密,輸入3退出系統:
請輸入命令符:
請輸入要加密的明文:
加密后的密文是:Hustnqp
輸入1加密新的明文,輸入2對剛加密的密文進行解密,輸入3退出系統:
請輸入命令符:
總結
字符串的加密和解密方法一直被廣泛應用,最常見的無非是 MD5 散列函數。本實例中的算法比較簡單,只是在原值基礎上相加對應值即可。MD5 略微復雜,是為了確保信息傳輸完整、一致而設計的雜湊算法之一,是雜湊算法的基本原理。
    作者:大學生新聞網    來源:大學生新聞網
    發(fā)布時間:2025-03-09    閱讀:
    掃一掃 分享悅讀
  • C語言輸出等腰三角形
  • 本實例要求從鍵盤輸入任意整數 n,通過程序運行輸出對應高度為 n 的等腰三角形。
  • 03-10 關注:0
  • C語言字符串加密和解密算法
  • 在本實例中要求設計一個加密和解密算法。在對一個指定的字符串加密之后,利用解密函數能夠對密文解密,顯示明文信息。
  • 03-09 關注:3
  • C語言統計單詞個數,單詞個數算法
  • 在實際生活中經常會遇到一個問題:寫英語作文時,常常要求滿足一定的字數。在以往,要么我們一個一個地數;要么我們估算一行的單詞數,
  • 03-09 關注:3
  • C語言獲取矩陣的最大值及其下標
  • 本實例要求使用二維數組將一個 3×4 的矩陣中所有元素的最大值及其下標獲取,通過該程序,掌握二維數組的引用知識。
  • 03-09 關注:4
  • C語言誰家孩子跑得最慢
  • 張、王、李三家各有三個小孩。一天,三家的九個孩子在一起比賽短跑,規(guī)定不分年齡大小,跑第一得 9 分,跑第二得 8 分,依次類推。
  • 03-09 關注:3
  • C語言狼追兔子問題
  • 一只兔子躲進了 10 個環(huán)形分布的洞的某一個,狼在第一個洞沒有找到兔子,就隔一個洞,到第三個洞去找
  • 03-09 關注:2
  • C語言兔子生兔子問題
  • 假設一對兔子的成熟期是一個月,即一個月可長成成兔,那么,如果每對成兔每個月都生一對小兔
  • 03-09 關注:4
  • C語言矩陣轉置
  • 本實例是利用數組解決線性代數中的矩陣轉置問題。
  • 03-09 關注:3
主站蜘蛛池模板: 人人妻人人澡人人爽超污 | 黄网免费在线观看| 欧美成人免费tv在线播放| 亚洲精品国产成人中文| 六十路依然风韵犹存| 午夜天堂精品久久久久| 午夜亚洲av日韩av无码大全| 和搜子居的日子2中文版| 午夜爽爽试看5分钟| 全彩漫画口工令人垂延三尺| 免费看毛片电影| 亚洲老妈激情一区二区三区| 人与动人物欧美网站| 亚洲精品在线不卡| 亚洲成a人片在线观看中文app| 亚洲国产精品综合久久网络 | 免费不卡中文字幕在线| 亚洲精品视频久久久| 亚洲国产成人无码av在线影院 | 成人av在线一区二区三区| 女仆的胸好大揉出奶水| 国产边摸边吃奶叫床视频| 国产白白白在线永久播放| 国产在线精品一区二区不卡| 含羞草影院无限在线看| 亲密爱人免费观看完整版| 亚洲国产91在线| 久久久久久不卡| japanese日本护士高潮| 18日本xxxxxxxxx视频| 青青免费在线视频| 看**一级**多毛片| 欧美三级全部电影观看| 日日躁夜夜躁狠狠躁| 天天天天天天干| 国产尤物在线视频| 全黄h全肉远古| 亚洲一区二区免费视频| 中文字幕中出在线| 800av在线播放| 色大18成网站www在线观看|