32位不可逆加密算法Java实现
加密后是一个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;
}
相关文档:
JAVA关键字详解
1 final数据:
1>对于基本类型前加以final修饰,表示被修饰的变量为常数,不可以修改。一个既是static有是final的字段表示只占据一段不能改变的存储空间。
2>final用于对象应用时,final使应用恒定不变。一旦引用被初始化指向一个对象,就无法再把它指向另一个对象。
& ......
Java 编程技术中汉字问题的分析及解决
现在 Java 编程语言已经广泛应用于互联网世界,早在 Sun 公司开发 Java 语言的时候,就已经考虑到对非英文字符的支持了。Sun 公司公布的 Java 运行环境(JRE)本身就分英文版和国际版,但只有国际版才支持非英文字符。不过在 Java 编程语言的应用中,对中文字符的支持并非如同 Java S ......
贴子中部分源代码摘自csdn的一篇帖子, 参考了他们的理解,说说自己的一些见解:
//源代码:
class A {
public String show(D obj){
return ("A and D");
......
public class SHA1 {
private final int[] abcde = {
0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0
};
// 摘要数据存储数组
&nb ......