跪求把这段代码转成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
相关问答:
问一下:
#include <stdio.h>
int main()
{
char x, y, z;
int i;
int a[16];
for(i=0; i<=16; i++)
{
a[i] = 0;
......
有个winform程序,使用c#+mysql,需要在一个窗体设置mysql自动删除功能,包括自动删除多少天之前的数据以及是否开启自动删除功能,我程序退出后,还怎么控制Mysql自己删除啊?是不是要用mysql的event来实现?c#可以调用mysq ......
我只学过清华蓝封面的C语言基础,想更深入的学习,该看什么书好?
C Primer Plus
C程序设计语言(第2版新版)
C语言程序设计_现代方法
C语言参考手册第五版
C语言大全
C和指针
C陷阱与缺陷
C专家编程
......
如何用C画图,能否编一个具体的 。
#include <conio.h>
#include <stdio.h>
int main()
{
int i;
char *s[]={"BLACK","BLUE","GREEN","CYAN","RE ......