文字列をBlowFishで暗号化したいと思ってます。
BlowFishで文字列をエンコード・デコードするにはどうしたらいいでしょうか?Delphi6Personalです
こちらの「暗号化 BlowFish アルゴリズム Delphi移植版」はいかがですか?
http://kuma.webj.net/
BlowFishって、ライセンスフリーの暗号化アルゴリズムですよね。
Delphiに標準では含まれなかったと思います。
http://www.schneier.com/blowfish.html
こちらに、C,C++,C#,Java,VBなどのソースをダウンロードできるリンクがあります。
Forthなんてマイナー言語に対応しているのに、Pascal言語のソースがないですが^^;
# C++のソースが付いているようなので、移植してみようかな
他にも、Googleで探せばたくさん見つかるかと思います。
どこかでコンポーネントが落ちていたのを見かけた気がします。
ありゃ、作った人がすでにいるんですね。
見つけきれませんでした。
これ さっきから使ってみてるんですけどね・・
なかなかうまくいかなくて・・
以前はにしのさんの紹介されたHPにPascal版もありましたが、
今は、なんらかの事情で公開を取りやめているようですね。
何か実装に注意点があるようなことが書いてあったので、
それをクリアできていなかったのが判明したのかもしれません。
>初心者Zさん
そういうのを情報の出し渋りと言ってとても嫌われます。
そういうことは最初に言いましょう。
そして、せっかくご紹介して頂いているのですからお礼をいいましょう。
回答する人の気持ちになって発言してください。
>なかなかうまくいかなくて・・
readme.txtに使用方法が書いてありますよ。
これで十分だと思うんだけど。。
>りんごさん
すいません。
ご回答をくださった方にも大変失礼な発言をしてしまい、反省しています。
今後発言に気をつけたいと思います。
暗号化 BlowFish アルゴリズム Delphi移植版でがんばってみますね!
ご回答頂いたかたありがとうございました。
あ、解決を忘れてました(^^;
1、uses に BlowFish, CryptUtils を追加
2、「Button」と「Edit」×3をを配置
Button1:暗号化実行ボタン
Edit1:暗号化する文字列
Edit2:暗号化した文字列
Edit3:復号された文字列
3、Button1のOnClickイベント↓
------------------------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
const
Key = 'ABCDEFG';
IV: array [0..1 - 1] of Int64 = ($1234567890123456);
var
Src, Dst: string;
Size: Integer;
begin
Src := Edit1.Text;
with (TCryptCBC.Create(Key, TBlowFish.Create, IV, SizeOf(IV), pmStandard)) do
try
Size := Length(Src);
SetLength(Dst, OutputSize(Size));
{暗号化}
Size := Encode(Src[1], Dst[1], Size);
Edit2.Text := Dst;
{復号}
Size := Decode(Dst[1], Dst[1], Size);
SetLength(Dst, Size);
Assert(Src = Dst);
Edit3.Text := Dst;
finally
Free;
end;
end;
------------------------------------------------------------
readme.txtを少し改変してみました
ツイート | ![]() |