如何把用户输入的密码加密存到数据库中

yhcustc 2003-07-28 02:46:19
如何把用户输入的密码加密存到数据库中?
...全文
172 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
cxz7531 2003-07-30
  • 打赏
  • 举报
回复
方法多得很
unit Unit2;

interface
uses
Classes;
const
C1 = 52845;
C2 = 22719;
function Encrypt(S: string): string;
function Decrypt(S: string): string;
implementation

function Encrypt(S: string): string;

var
i: Integer;
j: Integer;
Key: Word;
begin
Result := S;
for i := 1 to Length(S) do
begin
Result[i] := char(byte(s[i]) xor (Key shr 8));
Key := (byte(Result[I]) + Key) * C1 + C2;
end;
s := Result;
Result := '';
for i := 1 to Length(s) do
begin
j := Integer(s[i]);
Result := Result + Char(65 + (j div 26)) + char(65 + (j mod 26));
end;
end;

function Decrypt(S: string): string;
var
i: Integer;
j: Integer;
Key: Word;
begin
result := '';
for i := 1 to (Length(s) div 2) do
begin
j := (Integer(s[2 * i - 1]) - 65) * 26;
j := j + (Integer(s[2 * i]) - 65);
result := result + Char(j);
end;
s := Result;
for i := 1 to Length(S) do
begin
Result[i] := char(byte(S[I]) xor (Key shr 8));
Key := (byte(S[I]) + Key) * C1 + C2;
end;
end;
end.
yhcustc 2003-07-30
  • 打赏
  • 举报
回复
给你加分88
wdsimon 2003-07-28
  • 打赏
  • 举报
回复
注释一下:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
function pass(password:string):string;
{ Private declarations }
public
ss:string;

{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}



{ TForm1 }

function TForm1.pass(password: string): string; //加密函数
var
S,local,cvtp:string;
K:integer;
begin
if trim(password)='' then
result:=#08
else
begin
cvtp:='';
FOR K:=1 TO length(password) do
cvtp:=chr(ord(password[K])+ K MOD 3*K+76)+cvtp
end;
result:=cvtp;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
ss:=pass(edit1.Text); // 保存密码
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
if pass(edit1.Text)=ss then //验证密码
showmessage('ok')
else
showmessage('no');
end;

end.
wdsimon 2003-07-28
  • 打赏
  • 举报
回复
拷,还差一分就多一个三角了
搞了二三十分钟给你写了一个加密函数
如下:
新建一APPLICATION
声明一全局变量ss,
在表单上放edit1,edit2,Button1,Button2
在edit1中输入密码后按Button1,将加密后字符保存到全局变量ss中
在edit2中输入密码后按Button2,判断密码是否正确。
代码如下:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
function pass(password:string):string;
{ Private declarations }
public
ss:string;

{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}



{ TForm1 }

function TForm1.pass(password: string): string;
var
S,local,cvtp:string;
K:integer;
begin
if trim(password)='' then
result:=#08
else
begin
cvtp:='';
FOR K:=1 TO length(password) do
cvtp:=chr(ord(password[K])+ K MOD 3*K+76)+cvtp
end;
result:=cvtp;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
ss:=pass(edit1.Text);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
if pass(edit1.Text)=ss then
showmessage('密码正确')
else
showmessage('密码错误');
end;

end.

上面代码经过测试

记得及时给分哦
wdsimon 2003-07-28
  • 打赏
  • 举报
回复
写个加密函数吧
然后在保存密码时调用就OK了

2,496

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧