aqe演算法
❶ 求美劇矽谷全季
鏈接: https://pan..com/s/1m1G8AQEUYlzuZ_eMSzlEdQ
❷ 論文查重哪個好
如今大部分高校選用的是知網學術不端檢測體系,是國內最為權威的論文查重網站,也有部分校園是使用萬方和維普論文查重系統,不同的校園要求標准不同。從資料庫來講,知網是最好的,它能甩開維普、萬方好幾條街。但是如果從校園角度來考慮的話,自然學校採用的是什麼論文查重系統那此系統便是最為貼合學校的,因此對於畢業生來說,不用糾結哪個論文查重網站最好,只需要記住學校是使用哪個系統就用哪個系統就最好。
要想論文查重比較靠譜,就要查看論文查重系統的檢測結果是否精確、好用以及安全。看查重結果精確就要從論文查重系統的資料庫入手,看資料庫中收錄的資源是否全面廣泛;好用則主要看操作是否便利;安全就是看論文在檢測的時候不被泄露。
大部分論文查重系統都是滿足這三個方面的,特別是國內的主流論文查重系統,國內公認的主流論文查重系統是知網、維普和萬方這三個,但是其查重收費價格都比較貴,特別是知網查重的價格更是昂貴。因此查重論文初稿的話並不劃算,建議大家前期查重論文可以使用性價比高的PaperPP免費論文查重網站。
❸ linode ubuntu ipsec 提示是否是有x.509證書
一、概述
常見的X.509證書格式包括:
cer/crt是用於存放證書,它是2進制形式存放的,不含私鑰。
pem跟crt/cer的區別是它以Ascii來表示,可以用於存放證書或私鑰。
pfx/p12用於存放個人證書/私鑰,他通常包含保護密碼,2進制方式。
p10是證書請求。
p7r是CA對證書請求的回復,只用於導入
p7b以樹狀展示證書鏈(certificate chain),同時也支持單個證書,不含私鑰。
二、證書文件/私鑰文件
在HTTPS通訊中最常用的是cer/crt和pem。下面以pem格式的證書為例進行說明。下面是一個完整的PEM格式證書:
Certificate:
Data:
Version: 1 (0x0)
Serial Number: 1 (0x1)
Signature Algorithm: md5WithRSAEncryption
Issuer: C=US, ST=Montana, L=Bozeman, O=sawtooth, OU=consulting, CN=www.sawtooth-consulting.com/[email protected]
Validity
Not Before: Jun 30 18:52:17 2010 GMT
Not After : Mar 26 18:52:17 2013 GMT
Subject: C=US, ST=Montana, L=Bozeman, O=yaSSL, OU=support, CN=www.yassl.com/[email protected]
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public Key: (512 bit)
Molus (512 bit):
00:c6:7b:c0:68:81:2f:de:82:3f:f9:ac:c3:86:4a:66:b7:ec:d4:f1:f6:64:21:ff:f5:a2:34:42:d0:38:9f:c6:dd:3b:6e:26:65:6a:54:96:dd:d2:7b:eb:36:a2:ae:7e:2a:9e:7e:56:a5:b6:87:9f:15:c7:18:66:7e:16:77:e2:a7
Exponent: 65537 (0x10001)
Signature Algorithm: md5WithRSAEncryption
58:a9:98:e7:16:52:4c:40:e7:e1:47:92:19:1b:3a:8f:97:6c:7b:b7:b0:cb:20:6d:ad:b5:d3:47:58:d8:e4:f2:3e:32:e9:ef:87:77:e5:54:36:f4:8d:50:8d:07:b4:77:45:ea:9d:a4:33:36:9b:0b:e0:74:58:11:c5:01:7b:4d
-----BEGIN CERTIFICATE-----
CxMKY29u
MTdaMIGKMQswCQY
bBgkqhkiG
6CP/msw4ZKZrfs1PH2ZCH/9aI0QtA4n8bdO24mZWpUlt3Se+s2oq5+Kp5+VqW2h58VxxhmfhZ34qcCAwEAATANB
+FHkhkbOo+=
-----END CERTIFICATE-----
從Certificate開始到「-----BEGIN CERTIFICATE-----」為止,中間的內容是證書的明文格式。
從「-----BEGIN CERTIFICATE-----」開始到「-----END CERTIFICATE-----」為止是證書的明文格式經過ASN.1編碼再經過Base64編碼得到的。
證書中包含的內容以及ASN.1編碼格式:
對於私鑰文件,真正的私鑰是包含在字元串"-----BEGIN PRIVATE KEY-----"和字元串"-----END PRIVATE KEY-----"之間。
如果該私鑰文件是pkcs8格式的,那麼該私鑰文件的格式為
PrivateKeyInfo ::= SEQUENCE {
version Version(INTEGER),
privateKeyAlgorithm PrivateKeyAlgorithmIdentifier (AlgorithmIdentifier),
privateKey PrivateKey(OCTET STRING),
attributes [0] IMPLICIT Attributes OPTIONAL(SET OF Attribute)
}
如果不是pkcs8格式的,那麼"-----BEGIN PRIVATE KEY-----"和"-----END PRIVATE KEY-----"之間的內容就是私鑰的Base64編碼。
在客戶端或伺服器在交換證書時,需要首先把Base64編碼轉換為ASCII編碼再進行傳輸。
三、公鑰/私鑰
公鑰和私鑰是證書文件和私鑰文件中最核心的內容。
在SSL/TLS協議中需要是用公鑰演算法,來進行對稱密鑰的交換。最常見的演算法是RSA和DH,而RSA演算法和DH演算法的公鑰、私鑰的數據格式是不同的。
3.1 RSA演算法
RSA演算法簡要描述如下:
n = p *q; p,q為互質的大素數
(d * e) mod ( (p-1) * (q-1) ) = 1
其中n,e為公鑰,n,p,q,d,e自己保留。
加密方法:
Y(密文) = X(明文)**d mod n;
解密方法:
X(明文) = Y(密文)**e mod n;
密鑰格式
公鑰包含兩個整數:
n RSA 合數模,是一個正整數
e RSA 公開冪,是一個正整數
私鑰有兩種表達方法,這兩種方法是等價的。
1、
n RSA 合數模,是一個正整數
d RSA 私有冪,是一個正整數
2、
p 第一個因子,是一個正整數
q 第二個因子,是一個正整數
dP 第一個因子的CRT 冪,是一個正整數
dQ 第二個因子的 CRT 冪,是一個正整數
qInv (第一個)CRT 系數,是一個正整數
對於RSA演算法中的公鑰部分,包含兩個INTEGER類型的數字n和e。
對於RSA私鑰的第一種表述方法,私鑰中包含5個INTEGER類型的數字依次為n, e, d, p, q;對於RSA私鑰的第二種表達方法,私鑰中包含8個INTEGER類型的數字依次為n, e, d, p, q, dP, dQ和qInv;
交互方法:
SSL/TLS協議中,伺服器端用Certificate消息把證書(公鑰)傳遞給客戶端,客戶端隨機生成48byte的預主密鑰,用公鑰加密傳遞給伺服器端,作為雙方對稱加密中一系列密鑰計算的基礎。如下圖:
3.2 DH演算法
演算法原理:
DH演算法用於交換對稱密鑰,不能用於非對稱的加解密。
DH演算法簡要描述如下:
一個素數q和一個整數a, 稱a是q的一個原根。
雙方各自選定一個大數Xa和Xb,分別計算得到Ya = a**Xa mod q和Yb= a**Xb mod q;
雙方交換Ya和Yb,保密Xa和Xb。
計算對稱密鑰的方法:
K = Ya**Xb mod q = Xb ** Ya mod q
密鑰格式:
DH演算法的公鑰中包含了兩個整數:a和q,用於生成對稱密鑰
交互方法
伺服器一端通過Certificate消息同步雙方的a和q。
伺服器緊接著選取Xa,計算得到Ya,並通過Server Key Exchange消息把Ya傳遞給客戶端。
客戶端選取Xb,計算得到Yb,並通過Client Key Exchange消息把Yb傳遞給伺服器端。
雙方分別計算K = Ya**Xb mod q = Xb ** Ya mod q,得到相同的預主密鑰。
❹ mime郵件附件解碼
在網路上找到的, 你看看,可能會有幫助的
MIME 編碼方式簡介
Subject: =?gb2312?B?xOO6w6Oh?=
這里是郵件的主題,可是因為編碼了,我們看不出是什麼內容,其原來的文本是: 「你好!」我們先看看 MIME 編碼的兩種方法。
對郵件進行編碼最初的原因是因為 Internet 上的很多網關不能正確傳輸8 bit 內碼的字元,比如漢字等。編碼的原理就是把 8 bit 的內容轉換成 7 bit 的形式以能正確傳輸,在接收方收到之後,再將其還原成 8 bit 的內容。
MIME 是「多用途網際郵件擴充協議」的縮寫,在 MIME 協議之前,郵件的編碼曾經有過 UUENCODE 等編碼方式 ,但是由於 MIME 協議演算法簡單,並且易於擴展,現在已經成為郵件編碼方式的主流,不僅是用來傳輸 8 bit 的字元,也可以用來傳送二進制的文件 ,如郵件附件中的圖像、音頻等信息,而且擴展了很多基於MIME 的應用。從編碼方式來說,MIME 定義了兩種編碼方法Base64與QP(Quote-Printable) :
Base 64 是一種通用的方法,其原理很簡單,就是把三個Byte的數據用 4 個Byte表示,這樣,這四個Byte 中,實際用到的都只有前面6 bit,這樣就不存在只能傳輸 7bit 的字元的問題了。Base 64的縮寫一般是「B」,像這封信中的Subject 就是用的 Base64 編碼。
另一種方法是QP(Quote-Printable) 方法,通常縮寫為「Q」方法,其原理是把一個 8 bit 的字元用兩個16進制數值表示,然後在前面加「=」。所以我們看到經過QP編碼後的文件通常是這個樣子:=B3=C2=BF=A1=C7=E5=A3=AC=C4=FA=BA=C3=A3=A1。
------------------------------------------------------
http://www.china-askpro.com/msg36/qa99.shtml
------------------------------------------------------
http://ke..com/view/160611.htm
參考資料:我想你說的解碼不成功的可能是QP編碼
❺ 如何使用keytool創建密鑰倉庫
一步:生成密鑰對
您首先要做的是創建一個密鑰倉庫和生成密鑰對。您可以使用以下命令:
keytool -genkey -keyalg RSA -keysize 512 -dname "cn=hyq,o=eagle,c=cn" -alias weblogic -keypass 123456 -keystore C:/mykeystore/weblogic.jks -storepass 123456 -validity 365
(請注意:鍵入該命令時必須使其成為一行。此處用多行來顯示,主要是為了可讀性。)如下圖:
Snap2.gif
該命令將在 C 盤的 「mykeystore」 目錄中創建名為 「weblogic.jks」 的密鑰倉庫,並賦予它口令 「 123456 」 。它將為實體生成公鑰 / 私鑰對,該實體的 「 特徵名 」 為:常用名 「hyq」 、組織 「eagle」 和兩個字母的國家代碼 「cn」 。「 -keyalg 」指定它使用的是那種密鑰生成演算法來創建密鑰,預設的是 「DSA」 密鑰生成演算法(會使用預設的 「 帶 DSA 的 SHA1」 簽名演算法),兩個密鑰(公鑰與私鑰)的長度是 512 位,由 -keysize 來指定,默認的是 1024 位。 該證書包括公鑰和特徵名信息。該證書的有效期為 365 天,由 -validity 來指定,且與別名 「business」 所代表的密鑰倉庫項關聯。私鑰被賦予口令 「 123456 」 。
命令行里 DName 信息註解
DN 信息域
含義
CN
域名或 IP
OU
部門,沒有部門的可不要此項
O
單位名稱
L
單位地址
S
省份的拼音(第一個字母大寫)
C
國家的簡寫 ( CN 代表中國)
如果採用選項的預設值,可以大大縮短該命令。實際上,這些選項並不是必需的;對於有預設值的選項,未指定時將使用預設值,對於任何被要求的值,您將會得到要求輸入它的提示。例如:輸入命令 keytool -genkey -keystore "C:/tone.jks" -storepass 123456 -keyalg RSA ,就會有如下提示:
Snap3.gif
注意:這里的 密鑰倉庫路徑一定要存在,如果不存在的話,它就會拋如下的異常
Snap4.gif
第二步 : 產生證書請求certreq.pem 文件
使用如下命令:
keytool -certreq -alias weblogic -sigalg "MD5withRSA" -file C:/mykeystore/certreq.pem -keypass 123456 -keystore C:/mykeystore/weblogic.jks -storepass 123456
Snap5.gif
這樣在 C:/mykeystore/ 目錄下 就會產生一個 certreq.pem 文件,內容如下:
-----BEGIN NEW CERTIFICATE REQUEST-----
lxMFww
+
EAYRNl
l5dyGgV9hhu++/
ItNKJw==
-----END NEW CERTIFICATE REQUEST-----
第三步:這就相對來說簡單多了,就是向CA提交證書請求。
你可以隨便從網上找一家免費的CA認證適用機構(很多的),然後按照上面的提示進行操作就可以了,這一步就要用到前面生成的certreq.pem 文件了。(注意:一定要下載根證書)
將生成的證書和下載的根證書放至你比較容易找到的位置,我一般將它們和生成的jks文件放到一起。
第四步:導入證書
通過命令:keytool -import -alias RootCA -trustcacerts -file C:/mykeystore/RootCADemo.cer -keystore C:/mykeystore/weblogic.jks -storepass 123456將根證書導入第一步生成的weblogic.jks中,接著將所有其它的證書按照此命令全部導入。(注意證書的別名不能重復,同時一定注意要用上 -trustcacerts,否則,你在以後使用時,它將會認為你導入的這些證書是不可信任的 ,就會導致你在配置SSL時不能正常的工作。)
這就全部完成了密鑰倉庫的創建。然後就可以在支持這些證書格式的伺服器上使用了。下一篇將會寫一下在weblogic上如何配置雙向SSL。
❻ 求gep演算法高手!
生成文件:
第 1 個加密字串:Jk fpz nfy aij jpwyfha bszxjy, ztb bwl bs lyhlmqloy zuzkfsa.
密鑰 101 : 解密字串:Ik eoz mey zhj iowxehz asywjx, yta awk as kxhklqkny ytzjesz.
密鑰 103 : 解密字串:Ik coz key xhj gowvehx aswwjv, yty awi as ixhilqiny wtzhesx.
密鑰 107 : 解密字串:Ik yoz gey thj cowreht asswjr, ytu awe as exhelqeny stzdest.
密鑰 109 : 解密字串:Ik woz eey rhj aowpehr asqwjp, yts awc as cxhclqcny qtzbesr.
密鑰 113 : 解密字串:Ij coy kex xhi govvegx arwwiv, ysy avi ar ixgilpinx wtyherx.
密鑰 127 : 解密字串:Ii yox gew thh coureft aqswhr, yru aue aq exfeloenw stxdeqt.
密鑰 131 : 解密字串:Ih eow mev zhg iotxeez apywgx, yqa atk ap kxeklnknv ytwjepz.
密鑰 137 : 解密字串:Ih yow gev thg cotreet apswgr, yqu ate ap exeelnenv stwdept.
密鑰 139 : 解密字串:Ih wow eev rhg aotpeer apqwgp, yqs atc ap cxeclncnv qtwbepr.
密鑰 149 : 解密字串:Ig wov eeu rhf aospedr aoqwfp, yps asc ao cxdclmcnu qtvbeor.
密鑰 151 : 解密字串:If eou met zhe iorxecz anywex, yoa ark an kxckllknt ytujenz.
密鑰 157 : 解密字串:If you get the correct answer, you are an excellent student.
密鑰 163 : 解密字串:Ie cot kes xhd goqvebx amwwdv, yny aqi am ixbilkins wtthemx.
密鑰 167 : 解密字串:Ie yot ges thd coqrebt amswdr, ynu aqe am exbelkens sttdemt.
密鑰 173 : 解密字串:Id cos ker xhc gopveax alwwcv, ymy api al ixailjinr wtshelx.
密鑰 179 : 解密字串:Id wos eer rhc aoppear alqwcp, yms apc al cxacljcnr qtsbelr.
密鑰 181 : 解密字串:Ic eor meq zhb iooxezz akywbx, yla aok ak kxzkliknq ytrjekz.
密鑰 191 : 解密字串:Ib eoq mep zha ionxeyz ajywax, yka ank aj kxyklhknp ytqjejz.
密鑰 193 : 解密字串:Ib coq kep xha gonveyx ajwwav, yky ani aj ixyilhinp wtqhejx.
密鑰 197 : 解密字串:Ib yoq gep tha conreyt ajswar, yku ane aj exyelhenp stqdejt.
密鑰 199 : 解密字串:Ib woq eep rha aonpeyr ajqwap, yks anc aj cxyclhcnp qtqbejr.
最終結果: If you get the correct answer, you are an excellent student.
/*
1.題目
有一個加密文件,它的密鑰是從100至200中的一個素數,加密方法是每三個字母加上密鑰中對應的數字,超出26個大寫和小寫的字母範圍的減去26,空格和標點符號不加密。例如,假設密鑰為139,要加密的字元串為「We are students」,第一個字母「W」加密為』W』+1=』X』,第二個字母加密後為』e』+3=』h』,第三個字母加密後為』a』+9=』j』,第四個字母加密後為』r』+1=』s』, 第五個字母加密後為』e』+3=』h』,第六個字母加密後』s』+9超過了字母範圍,所以減去26得,』s』+9-26=』b』,….。
讀入已加密的文件,進行破譯,將可能的密鑰和相應的解密結果輸出到另一個文件。
2.編程要點:
1)用fgets函數讀入字元串
2)編一個函數處理所有可能的密鑰,即計算從100到200的所有素數
3)將密鑰化成三個元素的整型數組,分別對應百位、十位和個位
4)將所有英文字元按序輪換減去對應的數組元素,原來是大(小)寫英文字元超出大(小)寫英文字元范圍加上26。
3.密碼文件內容
Jk fpz nfy aij jpwyfha bszxjy, ztb bwl bs lyhlmqloy zuzkfsa.
*/
int is_prime(int in) //素數?
{
int i;
for(i = 2; i <= in /2; ++i )
if(0 == in % i)
return 0;
return 1;
}
int is_english_char(char ch) //是否26個英文字元 ?
{
if(('a' <= ch && 'z' >= ch) || ('A' <= ch && 'Z' >= ch))
return 1;
return 0;
}
int is_upper(char ch) //是否大寫?
{
if(('A' <= ch && 'Z' >= ch))
return 1;
return 0;
}
int is_lower(char ch) //是否小寫?
{
if(('a' <= ch && 'z' >= ch))
return 1;
return 0;
}
char * Key_chk(char *st, int ikey) //解密過程
{
int flag = 1,i =0;
char *pc = st;
int key[3] = ;
while('\0' != *pc)
{
if(is_english_char(*pc))
{
if(is_lower(*pc))
{
*pc -= key[i++ % 3];
if(!is_lower(*pc))
*pc += 26;
}
else
{
*pc -= key[i++ % 3];
if(!is_upper(*pc))
*pc += 26;
}
}
++pc;
}
return st;
}
char * Key_add(char *st, int ikey) //加密過程
{
int flag = 1,i=0;
char *pc = st;
int key[3] = ;
while('\0' != *pc)
{
if(is_english_char(*pc))
{
if(is_lower(*pc))
{
*pc += key[i++ % 3];
if(!is_lower(*pc))
*pc -= 26;
}
else
{
*pc += key[i++ % 3];
if(!is_upper(*pc))
*pc -= 26;
}
}
++pc;
}
return st;
}
#define AUTHOR ZERO_FN
int main(int argc, char *argv[])
{
char string[100] = ;
int i, count = 1;
FILE *pfS, *pfD;
if(NULL == (pfS = fopen("C:\\Users\\dell\\Desktop\\file21.txt","r"))) return 0;
if(NULL == (pfD = fopen("C:\\Users\\dell\\Desktop\\deskey.txt","w+"))) return 0;
while(NULL != fgets(string,sizeof(string),pfS)) //假設原文件有多行需要解密
{
//fprintf(pfD,"第 %d 個加密字串:%s", count++, string); //每個文件可以有多行
for(i = 100; i <= 200; ++i )
if(is_prime(i))
{
//printf(" 加密字串:",i); //屏顯,可有可無
//printf("%s\n",string); //屏顯,可有可無
//printf("用%d解密字串:",i); //屏顯,可有可無
Key_chk(string, i); //解密字串
//printf("%s\n\n",string); //屏顯,可有可無
fprintf(pfD,"密鑰 %d : 解密字串:%s", i, string); //按格式存儲解密結果
//fputs(string,pfD); //簡單存儲解密結果
Key_add(string, i); //還原源字串,准備下一次用另一個key解密
}
}
fclose(pfS);
fclose(pfD);
system("PAUSE");
return 0;
}