線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1392
推到 Plurk!
推到 Facebook!

請問如何在edit加密在edit上

尚未結案
paa
初階會員


發表:50
回覆:101
積分:30
註冊:2005-02-01

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-06-09 15:28:51 IP:210.70.xxx.xxx 未訂閱
一個資料庫,用edit,顯示在from上,之後在做一個button,加密的button,按下去後,就把原來明文的edit資料變成密文, Edit1.Text:=adoquery1.FieldByName('id').AsString; Edit2.Text:=adoquery1.FieldByName('a').AsString; Edit3.Text:=adoquery1.FieldByName('b').AsString; 但如何做一個button按下去加密後,變成在edit上原來的資料變成密文呢? (加密程式已經做好,只要用encrypt這個function呼叫就好了);
GeminiLin
一般會員


發表:12
回覆:24
積分:12
註冊:2002-12-26

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-06-09 15:35:06 IP:211.20.xxx.xxx 未訂閱
你將EDIT內的資料加密傳回EDIT是嗎?? 如果是這樣 Edit1.Text:=encrypt(Edit1.Text); Edit2.Text:=encrypt(Edit2.Text); Edit3.Text:=encrypt(Edit3.Text); 這是你要的嗎??
paa
初階會員


發表:50
回覆:101
積分:30
註冊:2005-02-01

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-06-09 15:35:55 IP:210.70.xxx.xxx 未訂閱
我的想法是 procedure TForm1.encryptClick(Sender: TObject); begin Edit1.Text := encrypt(edit1.Text, StartKey, MultKey, AddKey); edit2.Text := encrypt(edit2.Text, StartKey, MultKey, AddKey); Edit3.Text := encrypt(edit3.Text, StartKey, MultKey, AddKey); end; 可是這樣會有錯?請教教我高手
supman
尊榮會員


發表:29
回覆:770
積分:924
註冊:2002-04-22

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-06-09 15:38:13 IP:61.70.xxx.xxx 未訂閱
您好: 請將Edit的PasswordChar屬性改成'*'就可以了.
odyaho
初階會員


發表:60
回覆:104
積分:42
註冊:2005-02-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-06-09 15:46:55 IP:202.181.xxx.xxx 未訂閱
大家好    請問encrypt的函數怎麼表示呢?? 因為我沒有delphi  我只有bcb 加解密應該會有key Edit1.Text := encrypt(edit1.Text, StartKey, MultKey, AddKey); what's "StartKey , MultKey, AddKey"?? 或許再定義個
GeminiLin
一般會員


發表:12
回覆:24
積分:12
註冊:2002-12-26

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-06-09 15:49:09 IP:211.20.xxx.xxx 未訂閱
FUNCTION的宣告方式可以POST出來看看嗎
paa
初階會員


發表:50
回覆:101
積分:30
註冊:2005-02-01

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-06-09 15:53:09 IP:210.70.xxx.xxx 未訂閱
引言: 你將EDIT內的資料加密傳回EDIT是嗎?? 如果是這樣 Edit1.Text:=encrypt(Edit1.Text); Edit2.Text:=encrypt(Edit2.Text); Edit3.Text:=encrypt(Edit3.Text); 這是你要的嗎?? < face="Verdana, Arial, Helvetica"> 你好:這樣會有missing operator or semicolon lncompatible types:string and tbutton兩個錯耶
paa
初階會員


發表:50
回覆:101
積分:30
註冊:2005-02-01

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-06-09 16:00:33 IP:210.70.xxx.xxx 未訂閱
引言: 您好: 請將Edit的PasswordChar屬性改成'*'就可以了.
你好:請問要怎麼改啊我是想要把edit上的資料加密存在另一個新的資料庫上喔
supman
尊榮會員


發表:29
回覆:770
積分:924
註冊:2002-04-22

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-06-09 16:06:39 IP:203.204.xxx.xxx 未訂閱
你有自己去屬性表看過了嗎? procedure TForm1.Button2Click(Sender: TObject); begin Edit1.PasswordChar:='*';//讓使用者只會看到*的資料 showmessage(edit1.text);//程式內得到還是真正的資料 end; 有錯的地方請把錯誤訊息打出來,自己都懶得打,別人怎麼幫你,另外,函數的原型也貼出來大家看,也許他是用動態變數傳入,傳進去以後就會直接去改變他的值了. 發表人 - supman 於 2005/06/09 16:14:00
paa
初階會員


發表:50
回覆:101
積分:30
註冊:2005-02-01

發送簡訊給我
#10 引用回覆 回覆 發表時間:2005-06-09 16:22:04 IP:210.70.xxx.xxx 未訂閱
引言: 你有自己去屬性表看過了嗎? procedure TForm1.Button2Click(Sender: TObject); begin Edit1.PasswordChar:='*';//讓使用者只會看到*的資料 showmessage(edit1.text);//程式內得到還是真正的資料 end; 有錯的地方請把錯誤訊息打出來,自己都懶得打,別人怎麼幫你,另外,函數的原型也貼出來大家看,也許他是用動態變數傳入,傳進去以後就會直接去改變他的值了. 發表人 - supman 於 2005/06/09 16:14:00
你好我是不想讓別人看到我的edit上的資料,但不是用*來遮住,而是想用加密成顯的亂碼,傳到edit4、edit5、edit6。 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; 我的想法是procedure TForm1.encryptClick(Sender: TObject); begin Edit1.Text := encrypt(edit1.Text, StartKey, MultKey, AddKey); edit2.Text := encrypt(edit2.Text, StartKey, MultKey, AddKey); Edit3.Text := encrypt(edit3.Text, StartKey, MultKey, AddKey); end; 你好:這樣會有missing operator or semicolon lncompatible types:string and tbutton兩個錯耶
supman
尊榮會員


發表:29
回覆:770
積分:924
註冊:2002-04-22

發送簡訊給我
#11 引用回覆 回覆 發表時間:2005-06-09 16:32:33 IP:203.204.xxx.xxx 未訂閱
function Encrypt(const InString:string; StartKey,MultKey,AddKey:Integer): string; 函數原型的StartKey,MultKey,AddKey是數值 你下面所傳入的應該是設成了字串了吧.... encrypt(edit3.Text, StartKey, MultKey, AddKey); 改成這樣就可以了... procedure TForm1.Button2Click(Sender: TObject); var StartKey, MultKey, AddKey:integer; begin StartKey:=123; MultKey:=123; AddKey:=123; Edit1.Text := encrypt(edit1.Text, StartKey, MultKey, AddKey); edit2.Text := encrypt(edit2.Text, StartKey, MultKey, AddKey); Edit3.Text := encrypt(edit3.Text, StartKey, MultKey, AddKey); end; 發表人 - supman 於 2005/06/09 16:44:26
GeminiLin
一般會員


發表:12
回覆:24
積分:12
註冊:2002-12-26

發送簡訊給我
#12 引用回覆 回覆 發表時間:2005-06-09 16:37:57 IP:211.20.xxx.xxx 未訂閱
帶入數值是正常的喔... 妳的變數要給值... ======================== 能解決的事,不必去擔心;不能解決的事,擔心也沒用。 ======================== 意思是看開一點嗎...
paa
初階會員


發表:50
回覆:101
積分:30
註冊:2005-02-01

發送簡訊給我
#13 引用回覆 回覆 發表時間:2005-06-09 17:13:21 IP:210.70.xxx.xxx 未訂閱
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 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; procedure TForm1.Button1Click(Sender: TObject); begin //Edit1.Text:=adoquery1.FieldByName('id').AsString; //Edit2.Text:=adoquery1.FieldByName('a').AsString; //Edit3.Text:=adoquery1.FieldByName('b').AsString; procedure TForm1.encryptClick(Sender: TObject); begin Edit4.Text := encrypt(edit1.Text, StartKey, MultKey, AddKey); edit5.Text := encrypt(edit2.Text, StartKey, MultKey, AddKey); Edit6.Text := encrypt(edit3.Text, StartKey, MultKey, AddKey); end; 你好:這樣會有missing operator or semicolon lncompatible types:string and tbutton兩個錯耶
supman
尊榮會員


發表:29
回覆:770
積分:924
註冊:2002-04-22

發送簡訊給我
#14 引用回覆 回覆 發表時間:2005-06-09 17:22:00 IP:203.204.xxx.xxx 未訂閱
請問你是否了解我上面講的東西...???????????????????? 只是把程式碼,隨便貼上去,然後出現的錯誤訊息變了都不曉得,也Copy貼上這樣就來問???? 動動腦,多看看書吧..............
unit Unit1;    interface    uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;    type
  TForm1 = class(TForm)
    Button2: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;    var
  Form1: TForm1;    implementation    {$R *.dfm}    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;
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;    procedure TForm1.Button2Click(Sender: TObject);
begin
Edit1.Text := encrypt(edit1.Text, StartKey, MultKey, AddKey);
edit2.Text := encrypt(edit2.Text, StartKey, MultKey, AddKey);
Edit3.Text := encrypt(edit3.Text, StartKey, MultKey, AddKey);
end;    end.
發表人 - supman 於 2005/06/09 17:25:40
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#15 引用回覆 回覆 發表時間:2005-06-09 19:08:24 IP:211.22.xxx.xxx 未訂閱
引言:
引言: 你將EDIT內的資料加密傳回EDIT是嗎?? 如果是這樣 Edit1.Text:=encrypt(Edit1.Text); Edit2.Text:=encrypt(Edit2.Text); Edit3.Text:=encrypt(Edit3.Text); 這是你要的嗎?? < face="Verdana, Arial, Helvetica"> 你好:這樣會有missing operator or semicolon lncompatible types:string and tbutton兩個錯耶
paa miss or mrs. what ever!錯誤檢查應該先從加密函數KEY的型態著手(Key的型態與函數合不合?),再來看看傳回的加密內容(encrypt函數的回傳值)是不是DELPHI可以接受的STRING類別,如果不是,要先加密結果化成十六進位的字串數值(轉換函數在站裡就可以搜尋到了),不然是無法指定給EDIT的值的,因為會發生你所述的型態錯誤訊息!請參考! -----------------------------------------------
系統時間:2024-06-26 22:54:38
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!