小女子求助!

zninger 2006-03-11 01:04:58
领导让我读数据库里加密完的密码!给了我算法用c#.net读出
我只会delphi那位能帮助我翻译一下把delphi翻译成.net

function TForm1.myStrtoHex(s: string): string;
var tmpstr:string;
i:integer;
begin
tmpstr := '';
for i:=1 to length(s) do
begin
tmpstr := tmpstr + inttoHex(ord(s[i]),2);
end;
result := tmpstr;
end;

function TForm1.myHextoStr(S: string): string;
var hexS,tmpstr:string;
i:integer;
a:byte;
begin
hexS :=s;//应该是该字符串
if length(hexS) mod 2=1 then
begin
hexS:=hexS+'0';
end;
tmpstr:='';
for i:=1 to (length(hexS) div 2) do
begin
a:=strtoint('$'+hexS[2*i-1]+hexS[2*i]);
tmpstr := tmpstr+chr(a);
end;
result :=tmpstr;
end;

function TForm1.encryptstr(const s:string; skey:string):string;
var
i,j: integer;
hexS,hexskey,midS,tmpstr:string;
a,b,c:byte;
begin
hexS :=myStrtoHex(s);
hexskey:=myStrtoHex(skey);
midS :=hexS;
for i:=1 to (length(hexskey) div 2) do
begin
if i<>1 then midS:= tmpstr;
tmpstr:='';
for j:=1 to (length(midS) div 2) do
begin
a:=strtoint('$'+midS[2*j-1]+midS[2*j]);
b:=strtoint('$'+hexskey[2*i-1]+hexskey[2*i]);
c:=a xor b;
tmpstr := tmpstr+myStrtoHex(chr(c));
end;
end;
result := tmpstr;
end;

function TForm1.decryptstr(const s:string; skey:string):string;
var
i,j: integer;
hexS,hexskey,midS,tmpstr:string;
a,b,c:byte;
begin
hexS :=s;//应该是该字符串
if length(hexS) mod 2=1 then
begin
showmessage('密文错误!');
exit;
end;
hexskey:=myStrtoHex(skey);
tmpstr :=hexS;
midS :=hexS;
for i:=(length(hexskey) div 2) downto 1 do
begin
if i<>(length(hexskey) div 2) then midS:= tmpstr;
tmpstr:='';
for j:=1 to (length(midS) div 2) do
begin
a:=strtoint('$'+midS[2*j-1]+midS[2*j]);
b:=strtoint('$'+hexskey[2*i-1]+hexskey[2*i]);
c:=a xor b;
tmpstr := tmpstr+myStrtoHex(chr(c));
end;
end;
result := myHextoStr(tmpstr);
end;
...全文
396 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
lotomer 2006-06-23
  • 打赏
  • 举报
回复
就是啊
把他做成DLL
再在C#里调用啊
这地方都不用DLL,那DLL还有什么用啊
moudy 2006-06-20
  • 打赏
  • 举报
回复
begin
a:=strtoint('$'+midS[2*j-1]+midS[2*j]);
b:=strtoint('$'+hexskey[2*i-1]+hexskey[2*i]);
c:=a xor b;
tmpstr := tmpstr+myStrtoHex(chr(c));
end;

///////////////////////////////////
a=Convert.ToInt32("0x"+midS[2*j-1]+midS[2*j]);
b=Convert.ToInt32("0x"+hexskey[2*i-1]+hexskey[2*i]);
c=a ^ b;
tmpstr=tmpstr+//这个是你自己写的函数吧,把字符表示成十六进制
jbczj 2006-06-04
  • 打赏
  • 举报
回复
用delphi做一个DLL C#调用嘛
sunchaohuang 2006-06-04
  • 打赏
  • 举报
回复
upup
gnhao 2006-05-10
  • 打赏
  • 举报
回复
你出卖公司的CODE!!!!!!!!!!!!!1
bufan2162 2006-05-10
  • 打赏
  • 举报
回复
不知道Dephi.net是啥玩意儿
zhoujijunnt 2006-05-09
  • 打赏
  • 举报
回复
接分
zhanghua1982 2006-05-07
  • 打赏
  • 举报
回复
接分 本来也想帮你翻译的
看了上面的那个写得那么好
我就不好意思写了哈哈
荣之梦 2006-04-23
  • 打赏
  • 举报
回复
i毫不犹豫的接分
copico 2006-04-13
  • 打赏
  • 举报
回复
mark
iceflylee 2006-03-12
  • 打赏
  • 举报
回复
begin
a:=strtoint('$'+midS[2*j-1]+midS[2*j]);
b:=strtoint('$'+hexskey[2*i-1]+hexskey[2*i]);
c:=a xor b;
tmpstr := tmpstr+myStrtoHex(chr(c));
end;


这段看不懂。剩下的每问题啊
lidong6 2006-03-11
  • 打赏
  • 举报
回复
用.NET自带的加密函数吧,更简单.
iceflylee 2006-03-11
  • 打赏
  • 举报
回复
不知道对不对

private string myStrtoHex(string str)
{
string tmpstr;int i;
tmpstr = "";
for (i=1;i<str.Length;i++)
{
tmpstr = tmpstr+ Convert.ToString(str[i],16);
}
return tmpstr;
}
private string encryptstr(string sourse,string key)
{
int i,j;
string hexS,hexskey,midS,tmpstr;
byte a,b,c;
hexS = this.myStrtoHex(sourse);
hexskey = this.myStrtoHex(key);
midS = hexS;
for(i=1;i<hexskey.Length/2;i++)
{
if(i!=1)
{
midS = tmpstr;
}
tmpstr = "";
for(i=1;i<midS/2;i++)
{
a = Convert.ToInt32(midS[2*j-1]+midS[2*j]);
b = Convert.ToInt32(hexskey[2*i-1+hexskey[2*1]]);
}
}
return "";

}
zninger 2006-03-11
  • 打赏
  • 举报
回复
我查了帮助。主要是.net好像挺简单的。不用这么复杂的换算。好像都提供好方法了
直接调用就可以了吧

1,978

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 其他语言讨论
社区管理员
  • 其他语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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