請問如何在edit加密在edit上 |
尚未結案
|
paa
初階會員 發表:50 回覆:101 積分:30 註冊:2005-02-01 發送簡訊給我 |
一個資料庫,用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 發送簡訊給我 |
|
paa
初階會員 發表:50 回覆:101 積分:30 註冊:2005-02-01 發送簡訊給我 |
我的想法是
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 發送簡訊給我 |
|
odyaho
初階會員 發表:60 回覆:104 積分:42 註冊:2005-02-15 發送簡訊給我 |
|
GeminiLin
一般會員 發表:12 回覆:24 積分:12 註冊:2002-12-26 發送簡訊給我 |
|
paa
初階會員 發表:50 回覆:101 積分:30 註冊:2005-02-01 發送簡訊給我 |
引言: 你將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 發送簡訊給我 |
|
supman
尊榮會員 發表:29 回覆:770 積分:924 註冊:2002-04-22 發送簡訊給我 |
你有自己去屬性表看過了嗎?
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 發送簡訊給我 |
引言: 你有自己去屬性表看過了嗎? 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 發送簡訊給我 |
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 發送簡訊給我 |
|
paa
初階會員 發表:50 回覆:101 積分:30 註冊:2005-02-01 發送簡訊給我 |
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 發送簡訊給我 |
請問你是否了解我上面講的東西...????????????????????
只是把程式碼,隨便貼上去,然後出現的錯誤訊息變了都不曉得,也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 發送簡訊給我 |
引言:引言: 你將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的值的,因為會發生你所述的型態錯誤訊息!請參考! ----------------------------------------------- |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |