加急!!!!高手,在线等

james_cheng10 2011-09-21 09:24:37
以下是GBk编码的,补全代码,输出结果!高手在哪里?着急啊!!!

int encode(const void* raw_in, void* raw_out, uint32_t password, size_t len)
{
const uint8_t* in = (const uint8_t*)raw_in;
uint8_t* out = (uint8_t*)raw_out;

uint32_t seed = password ^ 0xa612952cu;

for (size_t i = 0 ; i < len; ++i)
{
uint8_t a = ( in[i] ^ seed ) >> 3;
uint8_t b = ( ( ((uint32_t)in[i]) << 18 ) ^ seed ) >> (18-5);
a &= 31;
b &= 224;
a = 31 & ( a ^ (b << 3));
out[i] = a | b;
seed = ((seed ^ in[i]) * 7321 + in[i]);
}
return 0;
}


int decode(const void* raw_in, void* raw_out, uint32_t password, size_t len)
{
const uint8_t* in = (const uint8_t*)raw_in;
uint8_t* out = (uint8_t*)raw_out;

uint32_t seed = password ^ 0xa612952cu;
for (size_t i = 0 ; i < len; ++i)
{
// 请在此处补全代码
}
return 0;
}
int main()
{
const uint8_t buf1[] = {0x1d, 0xfd, 0x82, 0xea, 0x27, 0xb0, 0x7c, 0xb9, 0xd1, 0x96, 0xab, 0x1f, 0x30, 0x12, 0x59, 0x4d, 0xd6, 0x3d, 0x23, 0xc3, 0x89, 0x8b, 0xf8, 0xa6, 0xf4, 0x3a, 0xe3, 0x11, };
uint8_t buf2[100] = {};
const uint32_t password = 0xe71ee00cu;
const size_t len = sizeof(buf1);
decode(buf1, buf2, password, len);
printf("%s\n", buf2);
}
...全文
55 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
勿勿 2011-09-21
  • 打赏
  • 举报
回复
换板块问
-晴天 2011-09-21
  • 打赏
  • 举报
回复
木有见过高手.
--小F-- 2011-09-21
  • 打赏
  • 举报
回复
不是SQL问题 建议去相应版问问。
hao1hao2hao3 2011-09-21
  • 打赏
  • 举报
回复
[Quote=引用楼主 jian19851010 的回复:]
以下是GBk编码的,补全代码,输出结果!高手在哪里?着急啊!!!

int encode(const void* raw_in, void* raw_out, uint32_t password, size_t len)
{
const uint8_t* in = (const uint8_t*)raw_in;
uint8_t* out = (uint8_t*)raw_out;
……
[/Quote]

补全代码,实现怎么样的效果总要说出来吧!而且也发错了地方。转到C语言社区吧!
chuanzhang5687 2011-09-21
  • 打赏
  • 举报
回复
你确定这是sql问题?
如果不是sql问题建议楼主换个版块问问

22,294

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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