fSeedA = 56789 ;/// 常量 ,
fSeedB = 54667 ; /// 常量 ,
fKey=7744 ; // 钥匙
function Decrypt(const str: string): string;
var
i, j, iKey: Integer;
strGet: string;
begin
strGet := str;
iKey := FKey;
Result := '';
for i := 1 to (Length(strGet) div 2) do
begin
j := (Integer(strGet[2*i-1])-65)*26;
j := j + (Integer(strGet[2*i])-65);
Result := Result + Char(j);
end;
strGet := Result;
for i := 1 to Length(strGet) do
begin
Result[i] := Char(byte(strGet[I]) xor (iKey shr 8));
iKey := (Byte(strGet[I]) + iKey) * FSeedA + FSeedB;
end;
end; 以上是在网上看到的一段用DELPHI写的解密的函数,加密的类似,所以想请各位帮看看如何转到VC++中,这里我最不理解的是返回值是string类型,那么在VC中可以用哪种类型替代呢?
另外,绝色字体处,for中1开始循环,不是一般从0开始么?
没接触过DELPHI,还请各位大侠指点,不胜感激!
fSeedB = 54667 ; /// 常量 ,
fKey=7744 ; // 钥匙
function Decrypt(const str: string): string;
var
i, j, iKey: Integer;
strGet: string;
begin
strGet := str;
iKey := FKey;
Result := '';
for i := 1 to (Length(strGet) div 2) do
begin
j := (Integer(strGet[2*i-1])-65)*26;
j := j + (Integer(strGet[2*i])-65);
Result := Result + Char(j);
end;
strGet := Result;
for i := 1 to Length(strGet) do
begin
Result[i] := Char(byte(strGet[I]) xor (iKey shr 8));
iKey := (Byte(strGet[I]) + iKey) * FSeedA + FSeedB;
end;
end; 以上是在网上看到的一段用DELPHI写的解密的函数,加密的类似,所以想请各位帮看看如何转到VC++中,这里我最不理解的是返回值是string类型,那么在VC中可以用哪种类型替代呢?
另外,绝色字体处,for中1开始循环,不是一般从0开始么?
没接触过DELPHI,还请各位大侠指点,不胜感激!
解决方案 »
- CRichEditCtrl中输入汉字不响应OnChar函数
- MSDN上面通常不会列出一个CLSID支持哪些Interface,那我怎么知道Query哪些接口?
- 很简单的代码带来极大的困惑
- 这样会不会有memory leak???
- 问个问题 怎么样在visual studio.net加入一个库 (比如加:winmm.lib) 最好不是用命令行方式
- 一个很简单的问题?
- 请问怎么在listbox中设置combox和edit控件?怎么动态添加?参数怎么传递?在线等待!!!!
- 关于打印和打印预览的问题,请指教!
- 关于Bitmap的导入问题
- visual 2008内存泄露检查工具
- (满分献上)求VC知识库上的一源代码
- VC 实现资源管理器左边的树形结构
VC的FOR循环也可能从1开始循环
pchar(string) 可强制转换成C的char*
VC的 CString 是从0 开始计数的
只是,strGet[2*i-1]有这么一句,我在VC中可不好模拟啊!
我是不是需要模拟一个它这样的字符串,第一位表示长度,第二位以后才是数据?
那么如果数据过长的话,第一位也存储不过来呀!
这是这个算法本身就有的局限还是?
晕晕的,呵呵!大家继续给点意见啊