一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

VC++-數(shù)據(jù)加密

 小世界的野孩子 2022-12-09 發(fā)布于北京
  • 版本:

VS2012

 

實(shí)例說明:

在一些應(yīng)用程序或網(wǎng)絡(luò)程序中,經(jīng)常會存有一些非常機(jī)密的文件或數(shù)據(jù),為了防止其他非法用戶查閱或盜取這些機(jī)密數(shù)據(jù),可對其進(jìn)行加密。運(yùn)行程序,在“密鑰”編輯框中輸入密鑰,在“待加密的字符串”編輯框中輸入要加密的字符串,單擊“加密”按鈕,密文將顯示在“加密后的字符串”編輯框中,如圖所示。

 

  • 界面:

 

  • 技術(shù)要點(diǎn):

通過使用GetAt和SetAt函數(shù)可以將密文與密鑰提取出來的字符組成新的ASCII字符,從而實(shí)現(xiàn)加密。下面介紹這兩個函數(shù)。

GetAt函數(shù):返回字符串內(nèi)指定的單個字符,語法如下:

TCHAR GetAt( int nIndex ) const;

參數(shù)說明:

 nIndex:是返回字符在字符串的位置。

 返回值:字符串中的單個字符。

 

SetAt函數(shù):在字符串的指定位置寫入單個字符,語法如下:

void SetAt( int nIndex, TCHAR ch );

參數(shù)說明:

 nIndex:插入字符的位置。

 ch:要插入的字符。

 

  • 實(shí)現(xiàn)過程:

(1)新建一個基于對話框的應(yīng)用程序,將窗體標(biāo)題改為數(shù)據(jù)加密技術(shù)。

(2)在窗體上添加4個文本編輯控件和2個按鈕控件。

(3)加密代碼如下。

/*
    加密
*/
CString Encrypt(CString S, WORD K)
{
    CString Str,Str1,Result;
    int i,j;
    Str = S;
    for(i=0;i<S.GetLength();i++)
    {
        Str.SetAt(i,S.GetAt(i)+K);//獲得字符串
    }
    S = Str;
    //加密字符串
    for(i=0;i<S.GetLength();i++)
    {
        j = (BYTE)S.GetAt(i);
        Str1 = "01";
        Str1.SetAt(0,65+j/26);
        Str1.SetAt(1,65+j%26);
        Result += Str1;
    }
    return Result;
}

 

/*
    解密
*/
CString Decrypt(CString S, WORD K)
{
    CString Result,Str;
    int i,j;
    //解密字符
    for (int i=0;i<S.GetLength()/2;i++)
    {
        j=((BYTE)S.GetAt(2*i)-65)*26;
        j+=(BYTE)S.GetAt(2*i+1)-65;
        Str = "0";
        Str.SetAt(0,j);
        Result += Str;
    }
    S = Result;
    for (int i=0;i<S.GetLength();i++)
    {
        Result.SetAt(i, (BYTE)S.GetAt(i)-K);//設(shè)置字符串
    }
    return Result;
}

 

項目源代碼

void CMFCApplication1Dlg::OnBnClickedButtonencryption()
{
    // TODO: 在此添加控件通知處理程序代碼

    //獲得輸入的密鑰
    CString input1;
    GetDlgItem(IDC_EDIT_INPUT1)->GetWindowText(input1);

    //獲得輸入的待加密字符串
    CString input2;
    GetDlgItem(IDC_EDIT_INPUT2)->GetWindowText(input2);

    //開始加密
    WORD K = atoi(input1.GetBuffer());
    CString res = Encrypt(input2, K);

    //將加密后的字符串寫入到輸出對話框
    SetDlgItemText(IDC_EDIT_OUTPUT1, res.GetBuffer());

}


void CMFCApplication1Dlg::OnBnClickedButtondecode()
{
    // TODO: 在此添加控件通知處理程序代碼

    //獲得加密后的字符串
    CString output1;
    GetDlgItem(IDC_EDIT_OUTPUT1)->GetWindowText(output1);

    //獲得輸入的密鑰
    CString input1;
    GetDlgItem(IDC_EDIT_INPUT1)->GetWindowText(input1);


    //開始解密
    WORD K = atoi(input1.GetBuffer());
    CString res = Decrypt(output1, K);

    //將解密后的字符串寫入到輸出對話框
    SetDlgItemText(IDC_EDIT_OUTPUT2, res.GetBuffer());

}

 

  • 演示

 

Caesar盧尚宇

2021年3月8日

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    国产日韩综合一区在线观看| 真实国产乱子伦对白视频不卡| 国产欧美另类激情久久久| 免费精品一区二区三区| 亚洲精品高清国产一线久久| 久久福利视频视频一区二区| 黄色国产一区二区三区| 中国一区二区三区不卡| 国产色一区二区三区精品视频| 丝袜破了有美女肉体免费观看| 日本美国三级黄色aa| 一区二区三区精品人妻| 国产成人精品国内自产拍| 日韩av生活片一区二区三区| 九九热精彩视频在线免费| 男人大臿蕉香蕉大视频| 欧美丰满大屁股一区二区三区| 色婷婷中文字幕在线视频| 日韩综合国产欧美一区| 国产又黄又猛又粗又爽的片| 国产成人午夜在线视频| 久久国产亚洲精品成人| 日韩日韩日韩日韩在线| 日本道播放一区二区三区| 有坂深雪中文字幕亚洲中文| 日韩成人中文字幕在线一区| 国产高清一区二区白浆| 激情中文字幕在线观看| 少妇熟女亚洲色图av天堂| 99热在线播放免费观看| 特黄大片性高水多欧美一级| 国产一区二区三区四区免费| 日韩精品你懂的在线观看| 国产免费观看一区二区| 国产精品视频第一第二区| 日韩精品你懂的在线观看| 国产精品免费无遮挡不卡视频| 黄片免费播放一区二区| 成人欧美一区二区三区视频| 69精品一区二区蜜桃视频| 成人欧美一区二区三区视频|