易截截图软件、单文件、免安装、纯绿色、仅160KB

跪求把这段代码转成C的代码

是不是用c++写的?

那个byte是什么意思?

对位运算不是很了解,没专门学过


C/C++ code:

TDSLoginRequest中么有静态方法encryptPassword是加密密码的。我们来看一下:

private static byte[] encryptPassword(String s)

{

if(s == null)

return null;

int i = s.length();

byte abyte0[] = new byte[i * 2];

for(int j = 0; j < i; j++)

{

char c = s.charAt(j);

byte byte0 = (byte)c;

abyte0[j * 2] = (byte)((byte0 << 4 | byte0 >> 4) ^ 0xa5);

byte0 = (byte)(c >> 8);

abyte0[j * 2 + 1] = (byte)((byte0 << 4 | byte0 >> 4) ^ 0xa5);

}


return abyte0;

}


[color=#FF0000]上面是加密算法,下面是解密的。[/color]
可以看出原始密码s被转换成byte[],数组大小为s长度的一倍。循环分别填充每对byte奇数位和偶数位。

奇数位为s所在char的高低位互换后与0xa5异或运算的结果

偶数位可能用来迷惑我们吧,移来移去还是0xa5。

那们我们来把这个算法逆过来吧:



private String static decodePassword(byte[] b){



if(b==null)

return null;

StringBuffer sb = new StringBuffer();

for (int i = 0; i < b.length/2; i++) {

byte byte0 = (byte)(b[i * 2] ^ 0xa5);

byt


相关问答:

C 程序问题 (二) - C/C++ / C语言

问一下:
#include <stdio.h>
int main()
{
  char x, y, z;
  int i;
  int a[16];
  for(i=0; i<=16; i++)
  {
  a[i] = 0;
  ......

c#控制Mysql 实现自动删除功能 - .NET技术 / C#

有个winform程序,使用c#+mysql,需要在一个窗体设置mysql自动删除功能,包括自动删除多少天之前的数据以及是否开启自动删除功能,我程序退出后,还怎么控制Mysql自己删除啊?是不是要用mysql的event来实现?c#可以调用mysq ......

C的学习途径 - C/C++ / 新手乐园

我只学过清华蓝封面的C语言基础,想更深入的学习,该看什么书好?
C Primer Plus
C程序设计语言(第2版新版)
C语言程序设计_现代方法
C语言参考手册第五版
C语言大全
C和指针
C陷阱与缺陷
C专家编程

......

如何用C画图,能否编一个具体的 急用

如何用C画图,能否编一个具体的 。
#include <conio.h>
#include <stdio.h>
int main()
{
int i;
char *s[]={"BLACK","BLUE","GREEN","CYAN","RE ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号