實現過DES和AES.
DES真實密鑰真有56位,不說了。
AES密鑰長度128、192、256位,換算成位元組分別是16、24、32個,如果一個字元算一個位元組,分別是16、24、32個字元。通常你的密碼連16都達不到。這時,要麼把你的密碼直接當成密鑰用來加密,不夠補零,要麼就使用key stretching(自行查閱維基網路)。
我理解的正常情況下,密文不可能全部是可列印的ASCII字元。所以這里的密文很可能是轉換過的(很可能有多次)。
通常對稱加密的輸出是「純密文」,不包括加密參數(比如演算法、密鑰長度)的任何信息。如果你要做一個加密軟體,那麼就需要設計一個協議,並把它作為加密後文件的頭(或其它)部分。協議里可能記錄採用的加密演算法、密鑰長度、塊加密模式、初始化向量(IV)等解密時必須的信息。
綜上,無解。
B. 對稱加密和非對稱加密的區別如何理解二者之間的密碼演算法
對稱加密和非對稱加密,最重要的的區別就是加密演算法的不同:對稱加密演算法在加密和解密時使用的是同一個秘鑰,而非對稱加密演算法需要兩個密鑰來進行加密和解密,這兩個秘鑰是公開密鑰(簡稱公鑰)和私有密鑰(簡稱私鑰)。
綜上所述,對稱加密和非對稱加密,區別關鍵是加密密鑰的不同。