欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

傳參安全處理window.btoa base64加密,線性對(duì)稱(chēng)加密

 更新時(shí)間:2023年07月04日 00:01:34   作者:Eirice  
這篇文章主要介紹了傳參安全處理window.btoa base64加密,線性對(duì)稱(chēng)加密,需要的朋友可以參考下

那么如何保證自己前端簡(jiǎn)單又便捷的生成加密參數(shù)呢

1.我們可以使用window.btoa() window對(duì)象自帶的一個(gè)base64加密規(guī)則實(shí)現(xiàn) 前提參數(shù)需要時(shí)獨(dú)立的string。 解密方式 是將加密后的文本使用window.atob(Str) 注意Str: 必需是一個(gè)通過(guò) btoa() 方法編碼的字符串。

代碼中我們可以這樣使用

   /*
    *  根據(jù)條件查找
    * @params{}
    * */
    searchTemplate=()=>{
      let info=""
      this.props.form.validateFields((err, values) => {
       if(!err){
         console.log(window.btoa(values.carId))
         let data={
           carId:window.btoa(values.carId),
           data:values.data,
           timeRange:[moment(values.timeRange[0]).format('YYYY-MM-DD HH:mm:ss'), moment(values.timeRange[1]).format('YYYY-MM-DD HH:mm:ss')]
         }
         console.log("getData",data)
          //根據(jù)查詢(xún)結(jié)果顯示不同信息內(nèi)容
           info="數(shù)據(jù)生成失敗,請(qǐng)重新設(shè)置條件查詢(xún)"
           this.setState((state)=>({visible: true,modalInfo:info}));
       }
      })
    }

console.log(window.btoa(values.carId))

這部分將是我們的加密參數(shù) 特別提醒 需要告知你的后端同學(xué)你的參數(shù)使用的是Base64加密了 不然他會(huì)生氣的~~
接下來(lái)我們介紹幾種稍微偏專(zhuān)業(yè)一些的知識(shí),介于本人學(xué)生時(shí)代學(xué)習(xí)過(guò)密碼學(xué)的基礎(chǔ)

首先亮出第一種簡(jiǎn)單的應(yīng)用

“對(duì)稱(chēng)加密”: 看過(guò)抗日神劇的同學(xué)或者有所聽(tīng)聞的都知道,摩斯碼的解密需要一個(gè)密碼本,密碼工作者需要這密碼本來(lái)進(jìn)行解密。無(wú)論你傳輸?shù)亩嗝磸?fù)雜。規(guī)則的制定者始終都由這個(gè)密碼本的建立者掌握
這其實(shí)就是密碼學(xué)中基本的也是應(yīng)用最廣的可變性最大的‘對(duì)稱(chēng)加密’
舉個(gè)例子我想傳輸?shù)氖敲魑?lsquo;3, 4,5’ 我的秘鑰規(guī)定是‘+2’ 那么規(guī)則下我實(shí)際傳輸?shù)拿芪?lsquo;1, 2,3’ 。當(dāng)接收者知道我的秘鑰后我就可以知道其實(shí)他說(shuō)的是‘3,4,5’

升級(jí)版本來(lái)了

1.替代密碼

密鑰字符(僅支持單個(gè)字符密鑰)的ASCII碼值范圍為[32,126](可見(jiàn)、可輸入字符),加密運(yùn)算利用密鑰字符的ASCII碼值進(jìn)行加密,產(chǎn)生的每個(gè)密文字符ASCII碼值也在[32,126]之內(nèi);解密運(yùn)算利用密鑰字符的ASCII碼值進(jìn)行解密,產(chǎn)生的每個(gè)明文字符ASCII碼值也在[32,126]之內(nèi);

#include<iostream>
using namespace std;
void jiami();
void jiemi();
char a[100];
char b[100];
char k;
void jiami()
{
int i=0;
cout<<"明文: ";
cin>>a;
cout<<"請(qǐng)輸入密鑰:";
cin>>k;
while(a[i]!='\0')
{
b[i]=(char)((a[i]+k)>126?(a[i]+k)%126+31:(a[i]+k));
i++;
}
i=0;
cout<<"密文為:";
while(b[i]!='\0')
{
cout<<b[i];
i++;
}
cout<<endl;
}
void jiemi()
{
int i=0;
cout<<"請(qǐng)輸入密文: ";
cin>>a;
cout<<"請(qǐng)輸入密鑰: ";
cin>>k;
while(a[i]!='\0')
{
b[i]=(char)((a[i]-k)<32?126-abs((31-(a[i]-k))):(a[i]-k));
i++;
}
i=0;
cout<<"明文為:";
while(b[i]!='\0')
{
cout<<b[i];
i++;
}
cout<<endl;
}
void main()
{
int choose;
while(true)
{
cout<<"請(qǐng)選擇需要進(jìn)行的操作種類(lèi):"<<endl;
cout<<"1:加密  2:解密  3:退出 "<<endl;
cin>>choose;
if(choose==1)
{
jiami();
}
else if(choose==2)
{
jiemi();
}
else if(choose==3)
{
break;
}
else
{ 
cout<<"您輸入的序號(hào)不正確,請(qǐng)重新輸入"<<endl;
}
cout<<endl;
}
}

2.置換密碼

1)算法描述: (加密置換矩陣、逆置換矩陣不同)

#include<iostream>
using namespace std; 
int jiamibox[6]={3,4,5,2,6,1};     //加密置換矩陣 
int jiemibox[6]={6,4,1,2,3,5};     //逆置換矩陣
char in[5000];    //定義明文字符串變量
char out[5000];   //定義密文字符串變量
char ch;
void jiami();   // 加密函數(shù)
void jiemi();   //解密函數(shù)
void jiami()
{
cout<<"輸入要加密的明文:";
cin>>in;
for(int i=0;i<strlen(in)/6;i++)
{
for(int j=0;j<6;j++)
{
out[i*6+j]=in[i*6+(jiamibox[j]-1)];
}
}
char Out[5000];
for(int j=0;j<6;j++)
{
for(int i=0;i<strlen(in)/6;i++)
{
Out[i*6+j]=out[i*6+(jiamibox[j]-1)];
}
}
cout<<"加密后的密文為:";
for(int i=0;i<5000;i++)
{
if(in[i]!='\0')
cout<<Out[i];
else
break;
}
cout<<endl;
}
void jiemi()
{
cout<<"輸入要解密的密文:"; 
cin>>in;
for(int i=0;i<strlen(in)/6;i++)
{
for(int j=0;j<6;j++)
{
out[i*6+j]=in[i*6+(jiemibox[j]-1)];
}
}
char Out[5000];
for(int j=0;j<6;j++)
{
for(int i=0;i<strlen(in)/6;i++)
{
Out[i*6+j]=out[i*6+(jiemibox[j]-1)];
}
}
cout<<"解密后的明文為:";
for(int i=0;i<5000;i++)
{
if(in[i]!='\0')
cout<<Out[i];
else
break;
}
cout<<endl;
}
void main()
{
int choose;
while(true)
{
cout<<"1:加密  2:解密3:退出(輸入字符數(shù)必須是6的正整數(shù)倍)"<<endl;
cout<<"請(qǐng)選擇需要進(jìn)行的操作種類(lèi): ";
cin>>choose;
cout<<endl;
if(choose==1)
jiami();
elseif(choose==2)
jiemi();
elseif(choose==3)
break;
else
cout<<"您輸入的序號(hào)不正確,請(qǐng)重新輸入";
cout<<endl;
}
}

后兩種僅供提升參考,使用c++ 也可轉(zhuǎn)javaScript 推薦前兩種方案前端使用

到此這篇關(guān)于傳參安全處理window.btoa base64加密,線性對(duì)稱(chēng)加密的文章就介紹到這了,更多相關(guān)window.btoa base64加密內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解如何探測(cè)小程序返回到webview頁(yè)面

    詳解如何探測(cè)小程序返回到webview頁(yè)面

    這篇文章主要介紹了詳解如何探測(cè)小程序返回到webview頁(yè)面,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • JavaScript里 ==與===區(qū)別詳解

    JavaScript里 ==與===區(qū)別詳解

    這篇文章主要介紹了JavaScript里 ==與===區(qū)別詳解的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-08-08
  • 修改源碼來(lái)解決el-select值不匹配導(dǎo)致回顯id的問(wèn)題

    修改源碼來(lái)解決el-select值不匹配導(dǎo)致回顯id的問(wèn)題

    el-select數(shù)據(jù)的回顯是根據(jù)id去匹配值的,最近項(xiàng)目出現(xiàn)了回顯id的情況,一查是沒(méi)有匹配數(shù)據(jù)的問(wèn)題,于是就想怎么處理(針對(duì)單選的情況),本文小編給大家介紹了用修改源碼來(lái)解決el-select值不匹配導(dǎo)致回顯id的問(wèn)題,需要的朋友可以參考下
    2024-09-09
  • GoJs的文本繪圖模板TextBlock使用實(shí)例

    GoJs的文本繪圖模板TextBlock使用實(shí)例

    這篇文章主要為大家介紹了GoJs的文本繪圖模板TextBlock使用實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • 淺談es6中的元編程

    淺談es6中的元編程

    這篇文章主要介紹了淺談es6中的元編程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 微信小程序 頁(yè)面跳轉(zhuǎn)傳值實(shí)現(xiàn)代碼

    微信小程序 頁(yè)面跳轉(zhuǎn)傳值實(shí)現(xiàn)代碼

    這篇文章主要介紹了微信小程序 頁(yè)面跳轉(zhuǎn)傳值實(shí)現(xiàn)代碼的相關(guān)資料,這里分析實(shí)現(xiàn)的條件及實(shí)例代碼,需要的朋友可以參考下
    2017-07-07
  • JavaScript+HTML5實(shí)現(xiàn)的日期比較功能示例

    JavaScript+HTML5實(shí)現(xiàn)的日期比較功能示例

    這篇文章主要介紹了JavaScript+HTML5實(shí)現(xiàn)的日期比較功能,涉及javascript結(jié)合HTML5針對(duì)日期的轉(zhuǎn)換與運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下
    2017-07-07
  • js本身的局限性 別讓javascript做太多事

    js本身的局限性 別讓javascript做太多事

    最近常有人在Q群里發(fā)問(wèn)諸如"怎樣讓js操作文件"、"怎樣讓js實(shí)現(xiàn)多線程"等問(wèn)題。
    2010-03-03
  • undefined==null引發(fā)的兩者區(qū)別與聯(lián)系

    undefined==null引發(fā)的兩者區(qū)別與聯(lián)系

    undefined==null引發(fā)的兩者區(qū)別與聯(lián)系
    2007-12-12
  • H5基于iScroll實(shí)現(xiàn)下拉刷新和上拉加載更多

    H5基于iScroll實(shí)現(xiàn)下拉刷新和上拉加載更多

    這篇文章主要為大家詳細(xì)介紹了H5基于iScroll實(shí)現(xiàn)下拉刷新和上拉加載更多效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07

最新評(píng)論