全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2713
推到 Plurk!
推到 Facebook!

delphi有現成的加密函式可以用嗎?還是要自己寫?

答題得分者是:領航天使
c905165
中階會員


發表:50
回覆:120
積分:54
註冊:2002-09-29

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-12-07 08:40:06 IP:203.204.xxx.xxx 未訂閱
請問delphi中,有現成的加密/解密函式可以用嗎?而且可以自訂key的。 比如說: var ax: string; ax:= encrypt('這是原始的字串', key); bx:= decrypt(ax, key); 此時ax會等於bx。
------
有困難就是能力不足,有麻煩就是方法不對... 劣者總是遇到困難,也時常出現麻煩
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-12-07 19:34:35 IP:61.221.xxx.xxx 未訂閱
引言: 請問delphi中,有現成的加密/解密函式可以用嗎?而且可以自訂key的。 比如說: var ax: string; ax:= encrypt('這是原始的字串', key); bx:= decrypt(ax, key); 此時ax會等於bx。
c905165 你好: 以下是我的建議~~不妨參考看看 ( >
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
c905165
中階會員


發表:50
回覆:120
積分:54
註冊:2002-09-29

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-12-08 03:13:19 IP:203.204.xxx.xxx 未訂閱
感謝您提供訊息 我偏好不使用
------
有困難就是能力不足,有麻煩就是方法不對... 劣者總是遇到困難,也時常出現麻煩
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-12-08 08:12:59 IP:192.168.xxx.xxx 未訂閱
這理有一個簡單的加密解密範例:
Call:        Encrypted := Encrypt(InString,StartKey,MultKey,AddKey)        
        Decrypted := Decrypt(InString,StartKey)                          
Parameters:        InString        = long string (max 2 GB) that need to encrypt        
                decrypt                                                  
                MultKey= MultKey key
                AddKey= Second key                                                              StartKey        = Third key                        
e-mail:       djernaes@einstein.ot.dk
web:          einstein.ot.dk/~djernaes
---------------------------------------------------
unit Crypt32;
interface    const
  StartKey        = 981;          {Start default key}
  MultKey          = 12674;        {Mult default key}
  AddKey          = 35891;        {Add default key}    function Encrypt(const InString:string; StartKey,MultKey,AddKey:Integer): string;
function Decrypt(const InString:string; StartKey,MultKey,AddKey:Integer): string;    implementation    {$R-}
{$Q-}
{*******************************************************
 * Standard Encryption algorithm - Copied from Borland *
 *******************************************************}
function Encrypt(const InString:string; StartKey,MultKey,AddKey:Integer): string;
var
  I : Byte;
begin
  Result := '';
  for I := 1 to Length(InString) do
  begin
    Result := Result   CHAR(Byte(InString[I]) xor (StartKey shr 8));
    StartKey := (Byte(Result[I])   StartKey) * MultKey   AddKey;
  end;
end;
{*******************************************************
 * Standard Decryption algorithm - Copied from Borland *
 *******************************************************}
function Decrypt(const InString:string; StartKey,MultKey,AddKey:Integer): string;
var
  I : Byte;
begin
  Result := '';
  for I := 1 to Length(InString) do
  begin
    Result := Result   CHAR(Byte(InString[I]) xor (StartKey shr 8));
    StartKey := (Byte(InString[I])   StartKey) * MultKey   AddKey;
  end;
end;
{$R }
{$Q }    end.
另外,站長忘了在那曾看過一種無法還原的加密演算法, 可否請網友指導一下,謝謝! ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
hua2000
中階會員


發表:102
回覆:200
積分:65
註冊:2006-11-04

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-05-06 16:02:36 IP:218.20.xxx.xxx 未訂閱
站長大人,我用了一下上面的UNIT,發現出現了錯誤: 如下: 我的BUTTON中的代碼如下: procedure TForm1.Button1Click(Sender: TObject); begin edit2.Text:=encrypt(edit1.Text,38383,383838,383838); edit3.Text:=decrypt(edit2.Text,38383,383838,383838); end; 我它用作加密我的密碼的字符串時,也郵現了類似的錯誤! 還有沒有別的好用的UNIT呀,真是需要一個呀! 。。。。。。。。。。。 IMPROVE FOREVER
solnone
中階會員


發表:2
回覆:97
積分:69
註冊:2003-05-06

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-05-06 20:30:50 IP:203.66.xxx.xxx 未訂閱
下載這一個… http://www.vclxx.org/DELPHI/D32FREE/CL_CRYPT32.ZIP
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-05-07 07:42:47 IP:192.168.xxx.xxx 未訂閱
引言: 還有沒有別的好用的UNIT呀,真是需要一個呀!
這一個如何?AES加密演算法Delphi程式範例 http://delphi.ktop.com.tw/topic.php?topic_id=28295 ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-05-08 08:50:34 IP:192.168.xxx.xxx 未訂閱
引言: 站長大人,我用了一下上面的UNIT,發現出現了錯誤: 我的BUTTON中的代碼如下: procedure TForm1.Button1Click(Sender: TObject); begin edit2.Text:=encrypt(edit1.Text,38383,383838,383838); edit3.Text:=decrypt(edit2.Text,38383,383838,383838); end; 我它用作加密我的密碼的字符串時,也郵現了類似的錯誤! 還有沒有別的好用的UNIT呀,真是需要一個呀!
我找到您的問題了, 改為: procedure TForm1.Button1Click(Sender: TObject); var s:string; begin s:=Encrypt(edit1.text,38383,383838,383838); edit2.text:=s; edit3.text:=Decrypt(s,38383,383838,383838); end; 就可以了, 因為加密後的字串會變成亂碼, 您將這個字串傳給TEdit.text就會漏掉一個byte, 所以解密時就會出錯(少一碼)! ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
kuoyt
一般會員


發表:13
回覆:7
積分:4
註冊:2002-04-19

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-05-11 08:49:59 IP:61.228.xxx.xxx 未訂閱
站長大人: 請容我插花再問一下,一般都是針對字串作加密解密,如果是針對 Variant 或 olevariant 的資料該如何作呢
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-05-11 09:28:43 IP:192.168.xxx.xxx 未訂閱
引言: 一般都是針對字串作加密解密,如果是針對 Variant 或 olevariant 的資料該如何作呢
請見這一篇http://delphi.ktop.com.tw/topic.php?topic_id=28295 其中有檔案加解密的,採用Stream的方式應該也可以運用在Variant 或 olevariant 的資料! ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
系統時間:2024-06-29 21:00:31
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!