SHOW:
|
|
- or go back to the newest paste.
| 1 | var | |
| 2 | Codec: TCodec; | |
| 3 | CL: TCryptographicLibrary; | |
| 4 | PlainStream: TStringStream; | |
| 5 | CipherStream: TMemoryStream; | |
| 6 | begin | |
| 7 | PlainStream := TStringStream.Create(Edit1.Text); | |
| 8 | CipherStream := TMemoryStream.Create; | |
| 9 | ||
| 10 | CL := TCryptographicLibrary.Create(nil); | |
| 11 | Codec := TCodec.Create(nil); | |
| 12 | Codec.CryptoLibrary := CL; | |
| 13 | Codec.ChainModeId := uTPLb_Constants.CBC_ProgId; | |
| 14 | Codec.StreamCipherId := uTPLb_Constants.BlockCipher_ProgId; | |
| 15 | Codec.BlockCipherId := Format(uTPLb_Constants.AES_ProgId, [256]); | |
| 16 | Codec.Password := Edit3.Text; | |
| 17 | ||
| 18 | Codec.EncryptStream(PlainStream, CipherStream); | |
| 19 | Codec.Burn; | |
| 20 | ||
| 21 | Memo1.Text := Stream_to_Base64(CipherStream); | |
| 22 | Memo2.Clear; | |
| 23 | Memo2.Lines.Add(Format('Size: %d bytes', [CipherStream.Size]));
| |
| 24 | Memo2.Lines.Add(Format('Original size: %d bytes', [PlainStream.Size]));
| |
| 25 | ||
| 26 | Codec.Free; | |
| 27 | CL.Free; | |
| 28 | CipherStream.Free; | |
| 29 | PlainStream.Free; |