當前位置:首頁 » 密碼管理 » 密碼加密代碼

密碼加密代碼

發布時間: 2023-07-31 07:30:42

㈠ HTML5三種對密碼加密的方法

1、base64加密:在頁面中引入base64.js文件,調用方法為:

2、md5加密:在頁面中引用md5.js文件,調用方法為

3、sha1加密,據說這是最安全的加密:頁面中引入sha1.js,調用方法為

base64.js: http://files.cnblogs.com/mofish/base64.js
md5.js: http://files.cnblogs.com/mofish/md5.js
sha1.js: http://files.cnblogs.com/mofish/sha1.js

我們可以知道:escape()除了 ASCII 字母、數字和特定的符號外,對傳進來的字元串全部進行轉義編碼,因此如果想對URL編碼,最好不要使用此方法。而encodeURI() 用於編碼整個URI,因為URI中的合法字元都不會被編碼轉換。encodeURIComponent方法在編碼單個URIComponent(指請求參數)應當是最常用的,它可以講參數中的中文、特殊字元進行轉義,而不會影響整個URL。

請注意 encodeURIComponent() 函數 與 encodeURI() 函數的區別之處,前者假定它的參數是 URI 的一部分(比如協議、主機名、路徑或查詢字元串)。因此 encodeURIComponent() 函數將轉義用於分隔 URI 各個部分的標點符號。

一、encodeURI()//轉義一個URI中的字元

語法:encodeURI(uri)//這個在編碼不同的AJAX請求時,解決中文亂碼問題經常用到。

二、decodeURI()//解碼一個URI中的字元

語法:decodeURI(uri)

三、encodeURIComponent()//轉義URI組件中的字元

四、decodeURIComponent()//解碼一個URI組件中的字元

五、escape()//編碼一個字元串

語法:escape(value);

六、unecape()//解碼一個由escape()函數編碼的字元串

㈡ 畫圖說明序列密碼的主要加密方式

一、序列密碼概述

序列密碼也稱為流密碼(Stream Cipher),它是對稱密碼演算法的一種。序列密碼具有實現簡單、便於硬體實明族施、加解密處理速度快、沒有或只有有限的錯誤傳播等特點,因此在實際應用中,特別是專用或機密機構中保持著優勢,典型的應用領域包括無線通信、外交通信。

它的加密方式是將明文和密鑰進行異或運算,如:明文a,ASCLL碼為97,二進制嘛為0110 0001;密鑰為B,ASCLL碼為66,二進制碼為0100 0010,然後再按位異或:

明文 0 1 1 0 0 0 0 1
密鑰 0 1 0 0 0 0 1 0
密文 0 0 1 0 0 0 1 1
 

這樣得到的密文為0010 0011,對應的ascll為35,即「#」。

當我們拿到密文「#」以及密鑰「B」以後,我們同樣按照轉換為ASCLL碼,按位異或的方式,獲得明文:

密文 0 0 1 0 0 0 1 1
密鑰 0 1 0 0 0 0 1 0
明文 0 1 1 0 0 0 0 1
 

這樣,我們獲得了「0110 0001」,轉換為十進制為97,對應ASCLL表,得到了字元「a」。

二、序列密碼的定義

這里我們對序列密碼的加密與解密有以下定義:

明文、密文和密鑰序列都是由單獨的位組成,即:Xi,Yi,Si ∈{0,1}

加密:Yi = (Xi + Si) mod 2

解密:Xi = (Yi + Si) mod 2

三、序列密碼的特點

序列密碼如果使用統一密鑰多次攔截後,可以從其中的規律中推導出密鑰。1941-1946年間,蘇聯多次使用同一密碼本以便節約成本,最後被美國破譯,在美國稱為Venona計劃。為了讓序列秘密更加安全,於是產生了一次性密鑰,但是序列密碼最大的問題有兩點:

1.密鑰長度與明文長度一致,如果需要加密20M的明文,那麼就需要20M的密文

2.序列密碼容易被篡改。

四、簡單的序列密碼解密

知道了序列密碼的原理,解密過程就簡單了,只需要將密文與密鑰按字元依次取出,轉換為ascll碼,按位異或判州,再將其組合為字元串即可獲得明文。

這里,因為存在特殊符號,我們就先去askll碼表中,查到了每個符號對應的askll碼,如下:

"11","9","43","43","44","6","49","41","21","2","56","39","1","47","20"

這樣,我們就可以通過powershell,將密文進行解密了,代碼如下:

[string[]]$a_arr ="11","9","43","43","44","6","49","41","21","2","56","39","1","47","20"
[string]$miyue="EfcDAcFFgilHeNm"
[int]$cd = $miyue.Length
[char[]]$b_arr = $miyue.ToCharArray()
[string]$e_arr =""
for($i=1;$i -le $cd; $i++ )
{
[int]$c = $b_arr[$i-1]
[int]$d = $c -bxor $a_arr[$i-1]
[char]$e = $d
[string]$e_arr =$e_arr + $e

}

echo $e_arr
登錄後復制

輸出的結果為:

這就完成了對序列密掘槐蔽碼的解密。

c語言密碼加密,求解釋

很高興能為你解答!這是一個很普通的程序。
char a[5];這串代碼的意思是(定義一個字元數組元素為5個)。

for(i=0;i<5;i++)
{
scanf("%c",&a[i]);
}這串代碼的意思是(用了一個for循環條件為5次,每次要求用戶輸入一個字元,共輸入五次)。
for(m=0;m<5;m++)
{
a[m]=a[m]+4;
}這串代碼也是一個循環體,循環五次,每次都會進行運算表達式,a[m]=a[m]+4;這里的是每次將a[m]+4在賦給a[m]。如果還有什麼不明白可以追問。

㈣ 十大常見密碼加密方式

一、密鑰散列

採用MD5或者SHA1等散列演算法,對明文進行加密。嚴格來說,MD5不算一種加密演算法,而是一種摘要演算法。無論多長的輸入,MD5都會輸出一個128位(16位元組)的散列值。而SHA1也是流行的消息摘要演算法,它可以生成一個被稱為消息摘要的160位(20位元組)散列值。MD5相對SHA1來說,安全性較低,但是速度快;SHA1和MD5相比安全性高,但是速度慢。

二、對稱加密

採用單鑰密碼系統的加密方法,同一個密鑰可以同時用作信息的加密和解密,這種加密方法稱為對稱加密。對稱加密演算法中常用的演算法有:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK等。

三、非對稱加密

非對稱加密演算法是一種密鑰的保密方法,它需要兩個密鑰來進行加密和解密,這兩個密鑰是公開密鑰和私有密鑰。公鑰與私鑰是一對,如果用公鑰對數據進行加密,只有用對應的私鑰才能解密。非對稱加密演算法有:RSA、Elgamal、背包演算法、Rabin、D-H、ECC(橢圓曲線加密演算法)。

四、數字簽名

數字簽名(又稱公鑰數字簽名)是只有信息的發送者才能產生的別人無法偽造的一段數字串,這段數字串同時也是對信息的發送者發送信息真實性的一個有效證明。它是一種類似寫在紙上的普通的物理簽名,但是在使用了公鑰加密領域的技術來實現的,用於鑒別數字信息的方法。

五、直接明文保存

早期很多這樣的做法,比如用戶設置的密碼是「123」,直接就將「123」保存到資料庫中,這種是最簡單的保存方式,也是最不安全的方式。但實際上不少互聯網公司,都可能採取的是這種方式。

六、使用MD5、SHA1等單向HASH演算法保護密碼

使用這些演算法後,無法通過計算還原出原始密碼,而且實現比較簡單,因此很多互聯網公司都採用這種方式保存用戶密碼,曾經這種方式也是比較安全的方式,但隨著彩虹表技術的興起,可以建立彩虹表進行查表破解,目前這種方式已經很不安全了。

七、特殊的單向HASH演算法

由於單向HASH演算法在保護密碼方面不再安全,於是有些公司在單向HASH演算法基礎上進行了加鹽、多次HASH等擴展,這些方式可以在一定程度上增加破解難度,對於加了「固定鹽」的HASH演算法,需要保護「鹽」不能泄露,這就會遇到「保護對稱密鑰」一樣的問題,一旦「鹽」泄露,根據「鹽」重新建立彩虹表可以進行破解,對於多次HASH,也只是增加了破解的時間,並沒有本質上的提升。

八、PBKDF2

該演算法原理大致相當於在HASH演算法基礎上增加隨機鹽,並進行多次HASH運算,隨機鹽使得彩虹表的建表難度大幅增加,而多次HASH也使得建表和破解的難度都大幅增加。

九、BCrypt

BCrypt 在1999年就產生了,並且在對抗 GPU/ASIC 方面要優於 PBKDF2,但是我還是不建議你在新系統中使用它,因為它在離線破解的威脅模型分析中表現並不突出。

十、SCrypt

SCrypt 在如今是一個更好的選擇:比 BCrypt設計得更好(尤其是關於內存方面)並且已經在該領域工作了 10 年。另一方面,它也被用於許多加密貨幣,並且我們有一些硬體(包括 FPGA 和 ASIC)能實現它。 盡管它們專門用於采礦,也可以將其重新用於破解。

㈤ c語言實現密碼加密

unsignedchar*encrypt(unsignedchar*psw,intenc){
intsum=0,i;
if(enc){
for(i=0;i<6;i++){
psw[i]-=15;
sum+=psw[i];
}
psw[6]=(unsignedchar)sum;
psw[7]=0;
}
else{
for(i=0;i<6;i++){
sum+=psw[i];
psw[i]+=15;
}
if((unsignedchar)sum!=psw[6]){
printf("Badpassword ");
psw[0]=0;
returnpsw;
}
else{
psw[6]=0;
}
}
for(i=0;i<3;i++){
unsignedchart=psw[i];
psw[i]=psw[5-i];
psw[5-i]=t;
}
returnpsw;
}

intmain()
{
unsignedcharpsw[128];
scanf("%s",psw);
printf("encodeto:%s ",encrypt(psw,1));
printf("decodeto:%s ",encrypt(psw,0));
return0;
}

㈥ C語言實現密碼表加密

#include<stdio.h>
#include<stdlib.h>

#define N 1024
int find(char *pt,char c)
{
int i,r=-1;

for(i=0;'\0'!=pt[i];i++)
{
if(c==pt[i])
{
r=i;
break;
}
}
return r;
}
int main()
{
char mingwen[]="";
char miwen[]="";
char buf1[N],buf2[N];
int i,n;

scanf("%s",buf1);
for(i=0;'\0'!=buf1[i];i++)
{
if(-1!=(n=find(mingwen,buf1[i])))
{
buf2[i]=miwen[n];
}
else
{
buf2[i]=buf1[i];
}
}
buf2[i]='\0';
printf("%s\n",buf2);
system("PAUSE");
return EXIT_SUCCESS;
}

熱點內容
項目編譯啥意思 發布:2025-02-02 00:25:13 瀏覽:221
逐鹿中原怎樣做掛機腳本 發布:2025-02-02 00:23:39 瀏覽:26
安卓系統跟蹤在哪裡 發布:2025-02-02 00:23:38 瀏覽:897
安卓uc瀏覽器怎麼安裝油猴 發布:2025-02-02 00:23:38 瀏覽:298
中商情報網資料庫 發布:2025-02-02 00:09:26 瀏覽:532
python獲取目錄下所有文件名 發布:2025-02-01 23:47:54 瀏覽:896
生物安全櫃配置哪些葯品 發布:2025-02-01 23:37:19 瀏覽:424
光遇安卓畫質為什麼沒有ios好 發布:2025-02-01 23:33:33 瀏覽:845
免費網店系統源碼 發布:2025-02-01 23:24:05 瀏覽:311
壓縮不原圖 發布:2025-02-01 23:23:30 瀏覽:926