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;
}
相关文档:
1、开发环境:在myeclipse7.0中整合flex plup3.0, 安装flex plup3.0时,选myeclipse 中eclipse的目录,然
找到flex 的安装好的目录,将plugins和features对应到拷到myeclipse里面 eclipse相应的目录下。
2、创建 flex和 java (Web)的工程(通信框架用blazeds.war):
&nb ......
JAVA_HOME:
C:\Java\jdk1.6.0_17
Path:
%JAVA_HOME%\bin
ClassPath:
.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar
我们需要设置三个环境变量:JAVA_HOME、PATH 和 CLASSPATH。
JAVA_HOME:该环境变量的值就是 Java 所在的目录,一些 Java 版的软件和一
些 Java 的工具需要用到该变量,设置 PATH 和 CLASSP ......
Java6 脚本引擎(用Java调用JS脚本)调用js
import java.io.FileNotFoundException;
import java.io.FileReader;
import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
&n ......
贴子中部分源代码摘自csdn的一篇帖子, 参考了他们的理解,说说自己的一些见解:
//源代码:
class A {
public String show(D obj){
return ("A and D");
......
Java 推荐读物与源代码阅读
&n ......