游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1496|回复: 3

32位不可逆加密算法Java实现 wxh zt

[复制链接]

1367

主题

1993

帖子

2118

积分

金牌会员

Rank: 6Rank: 6

积分
2118
发表于 2005-6-7 16:30:00 | 显示全部楼层 |阅读模式
加密后是一个32位大写字母组合形式,并且本加密方法不可逆!

public String kljm(String dm,String kl)
{
String mw, cmm;
int k, i, tmp, a, hf, lf, bytes = 16;
int mm[], l,rand_seed;

rand_seed = 12345;

int len=kl.length();
if(len>=12) len=12;

mw =kl.substring(0,len) + dm.trim();
l = mw.length();

if (bytes > 100) bytes = 100;
if (l < bytes)
{
for (l = l;l<=bytes;l++)
{
rand_seed = (31527 * rand_seed + 3) % 32768;
a = rand_seed % 256;
if (a < 32 || a > 127) a = (int)(´a´);
mw = mw + (char)(a);
}
}

mm=new int[100];

for (l = 0;l<100;l++)
mm[l]=0;

for (l = 0;l<bytes;l++)
{
a = (int)mw.charAt(l);
for (i = 1;i<= 8;i++)
{
if (a >= 128)
{
a -= 128;
for (k = 0;k<bytes;k++)
{
rand_seed = (31527 * rand_seed + 3) % 32768;
mm[k] += rand_seed % 256;
}
}
else
{
for (k = 1;k<=bytes;k++)
rand_seed = (31527 * rand_seed + 3) % 32768;
}
a *= 2;
}
}

for (k = bytes-1;k>=0;k--)
{
if (k >= 1) mm[k - 1] += mm[k] / 256;
mm[k] = mm[k] % 256;
}

cmm = "";
for (k = 0;k<bytes;k++)
{
hf = mm[k] / 16;
if (hf < 10)
{
cmm = cmm + (char)(hf + (short)(´0´));
}
else
{
cmm = cmm + (char)(hf + (short)(´A´) - 10);
}
lf = mm[k] % 16;
if (lf < 10)
{
cmm = cmm + (char)(lf + (short)(´0´));
}
else
{
cmm = cmm + (char)(lf + (short)(´A´) - 10);
}
}

return cmm;
}

190

主题

1801

帖子

2096

积分

金牌会员

Rank: 6Rank: 6

积分
2096
QQ
发表于 2005-6-7 23:06:00 | 显示全部楼层

Re:32位不可逆加密算法Java实现 wxh zt

有真正不可逆的算法嘛?寒

13

主题

153

帖子

153

积分

注册会员

Rank: 2

积分
153
QQ
发表于 2005-6-8 01:21:00 | 显示全部楼层

Re:32位不可逆加密算法Java实现 wxh zt

寒。。。不可逆的意思是加密以后无法解密吗?

13

主题

153

帖子

153

积分

注册会员

Rank: 2

积分
153
QQ
发表于 2005-6-8 01:29:00 | 显示全部楼层

Re:32位不可逆加密算法Java实现 wxh zt

噢,俺明白了,原来是类似单向散列算法丫,身份验证用滴东东
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-25 23:08

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表