客戶介面需要用aes-cbc-nopadding方式加密文本,請問如何操作?
具體要求如下:
用AES演算法加密,秘鑰為appSecret重復兩遍,偏移量為appSecret重復兩遍(16位秘鑰不用重復),加密模式CBC,填充模式;NoPadding
uj5u.com熱心網友回復:
補充,Delphi7實作uj5u.com熱心網友回復:
https://download.csdn.net/download/axjlzzg/10247096?utm_source=bbsseo參考一下這個
uj5u.com熱心網友回復:
給你參考,自己修改下就可以了
procedure TWebAPI_JSON.AES_Decode(AKey, AInPut: AnsiString; var AOutPut: AnsiString);
var
// v: AnsiString;
ASource, ADest: TStringStream;
AStrStream: TStringStream;
CBCKey: array[0..32 - 1] of Byte;
//buffer: array[0..1024 - 1] of Byte;
i: Integer;
begin
for i := 0 to 32 - 1 do
CBCKey[i] := Byte(AKey[i + 1]);
AStrStream := TStringStream.Create(AInPut, TEncoding.ANSI);
ASource := TStringStream.Create('', TEncoding.ANSI);
ADest := TStringStream.Create('', TEncoding.UTF8);
try
DecodeStream(AStrStream, ASource);
AOutPut := ASource.DataString;
// ASource.Position := 0;
// ADest.Size := 0;
// ASource.Position := 0;
ASource.Position := 0;
DecryptAESStreamECB(ASource, ASource.Size, TAESKey256(CBCKey), ADest, pmZeroPadding);
AOutPut := ADest.DataString;
AOutPut := StringReplace(AOutPut, #$D#$A, '', [rfReplaceAll, rfIgnoreCase]); //增加代碼!!!
//Writeln('Base64 =' + v);
finally
ADest.Free;
ASource.Free;
AStrStream.Free;
end;
end;
https://sourceforge.net/projects/flyutilsencrypt/
去下載aes 原始碼
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/9586.html
標籤:語言基礎/算法/系統設計
上一篇:求各位大佬幫助啊
