乙個DELPHI寫的AES演算法原始碼中的問題

2021-04-08 22:51:34 字數 827 閱讀 1822

經過跟蹤分析,原來在aes.pas中的加密函式中有這麼一段**

[code]

begin

outstrm := tstream.create;

stream.position := 0;

count := stream.size;

outstrm.write(count, sizeof(count));

tryif keybit = kb128 then

[/code]

解密函式中也有一段

[code]

begin

outstrm := tstream.create;

stream.position := 0;

outpos :=outstrm.position;

stream.readbuffer(count, sizeof(count));

tryif keybit = kb128 then

[/code]

注意到 ds.writebuffer(size, sizeof(size));就是說在初始化ds這個tstringstream後,介面程式會首先把明文的長度占用長度的型別長度(sizeof(size))寫入ds的首部,以致後來轉化成密文後再轉成十六進製制字元顯示時會把這個長度資訊也輸出了,但這個顯示不屬於aes演算法本身範圍內,當然最奇怪的是那個繁體版的演示程式也是如此處理了,本來實現的主程式eiase.pas是沒有任何問題的。

現在初步的解決辦法就是把  outstrm.write(count, sizeof(count));和stream.readbuffer(count, sizeof(count));注釋掉。這樣得到的密文就應該是正確的了。

python寫乙個服務 Python寫乙個服務

coding utf 8 import json from urllib.parse import parse qs from wsgiref.server import make server 定義函式,引數是函式的兩個引數,都是python本身定義的,預設就行了。定義檔案請求的型別和當前請求成功...

寫乙個東東

最近打了幾天的三國無雙6,感覺不錯!很久很久以前,乙個小學同學帶了我到機室玩三國無雙。自此,我便喜歡上了這個遊戲。現在我玩的遊戲內有兩個 三國無雙和cs。ps 曾經有些怪我的這個好朋友帶我打遊戲,但現在想來,若不是他,我的童年又怎麼會有歡樂呢。人活著,快樂是最重要的.因為以前是用專用手柄打的,感覺非...

寫乙個網頁

1 建立站點資料夾,站點資料夾的名字可以是中文 2 在站點資料夾下面建立子資料夾和子檔案 css js images html,前三個都是資料夾形式 子資料夾和子檔案的名字不能是中文 2.重置所有預設的樣式和設定一些全域性樣式,並將設定樣式的css檔案和對應的頁面關聯起來 3.劃分區域 如果的寬度大...