function GetPassWord(PassWord: String): String;
var
Str,rStr: String;
Cha: Char;
I,len: integer;
function Upchar(key: Char): Char;
var
i,max: integer;
begin
Max := Ord('z');
i := Ord(key)+ 7 ;
if i > max then i := i- 26;
Result := Chr(i);
end; function UpcharA(key: Char): Char;
var
i,max: integer;
begin
Max := Ord('Z');
i := Ord(key)+ 5 ;
if i > max then i := i- 26;
Result := Chr(i);
end; function UpcharN(key: Char): Char;
var
i,max: integer;
begin
Max := Ord('9');
i := Ord(key)+ 3 ;
if i > max then i := i- 10;
Result := Chr(i);
end; function Encrypt(const S: String; Key: Word): String;
var
I: Integer;
begin
Result := S;
for I := 1 to Length(S) do
begin
Result[I] := char(byte(S[I]) xor Key);
key := (byte(S[I])+i);
end;
end;
function myStrToHex(StrSou: string): string;
var
i: integer;
S,Temp,ResStr: string;
begin
S := StrSou;
for i := 1 to length(S) do
begin
Temp := Format('%x', [ord(S[i])]);
Temp := copy('00',1, 2-length(Temp)) + Temp;
ResStr := ResStr + Temp;
end;
Result := ResStr;
end;
begin
Str := TRim(PassWord);
len := Length(Str);
for i := 1 to len do
begin
Cha := Str[i];
if Cha in ['a'..'z'] then
Cha :=upchar(Cha)
else if Cha in ['A'..'Z'] then
Cha :=upcharA(Cha)
else if Cha in ['0'..'9'] then
Cha :=upcharN(Cha) ;
rStr := rStr + Cha;
end;
Result := EnCrypt(rStr,123);
Result := myStrToHex(Result);
end;
var
Str,rStr: String;
Cha: Char;
I,len: integer;
function Upchar(key: Char): Char;
var
i,max: integer;
begin
Max := Ord('z');
i := Ord(key)+ 7 ;
if i > max then i := i- 26;
Result := Chr(i);
end; function UpcharA(key: Char): Char;
var
i,max: integer;
begin
Max := Ord('Z');
i := Ord(key)+ 5 ;
if i > max then i := i- 26;
Result := Chr(i);
end; function UpcharN(key: Char): Char;
var
i,max: integer;
begin
Max := Ord('9');
i := Ord(key)+ 3 ;
if i > max then i := i- 10;
Result := Chr(i);
end; function Encrypt(const S: String; Key: Word): String;
var
I: Integer;
begin
Result := S;
for I := 1 to Length(S) do
begin
Result[I] := char(byte(S[I]) xor Key);
key := (byte(S[I])+i);
end;
end;
function myStrToHex(StrSou: string): string;
var
i: integer;
S,Temp,ResStr: string;
begin
S := StrSou;
for i := 1 to length(S) do
begin
Temp := Format('%x', [ord(S[i])]);
Temp := copy('00',1, 2-length(Temp)) + Temp;
ResStr := ResStr + Temp;
end;
Result := ResStr;
end;
begin
Str := TRim(PassWord);
len := Length(Str);
for i := 1 to len do
begin
Cha := Str[i];
if Cha in ['a'..'z'] then
Cha :=upchar(Cha)
else if Cha in ['A'..'Z'] then
Cha :=upcharA(Cha)
else if Cha in ['0'..'9'] then
Cha :=upcharN(Cha) ;
rStr := rStr + Cha;
end;
Result := EnCrypt(rStr,123);
Result := myStrToHex(Result);
end;
解决方案 »
- 如何称为一个java架构师???
- 怎样用hibernate操作两张表
- java如何调用c++编写的webservice接口
- 简单的Jscript,就是我不理解怎么能算到5的呢.
- WebServices 可以使用session 这类web开发中的的安全措施吗?可以用的话,如何使用,高手指点!
- 算法题:100分,给出任意长度数字字符串,求所有不重复的组合
- weblogic 怎么运行servlet
- 大家说说Hibernate的运行原理或者执行过程??
- 如何把业务逻辑中得到的数据显示JSP页面中。
- 关于tomcat+eclipse+struts应用时出的一点问题
- sun.io.MalformedInputException
- 程序并发线程连续跑,出现内存泄露,jprofiler跟踪如下,大家分析
留备份public class pass {
public static char ascii2Char(int ASCII) {
return (char) ASCII;
}
public static int char2ASCII(char c) {
return (int) c;
}
public static byte Char2Byte(char cha){
return (byte)cha;
}
//a..z转换
public char Upchar(char cha){
int max = char2ASCII('z');
int i = char2ASCII(cha) + 7;
if (i > max) {
i = i - 26;
}
return ascii2Char(i);
}
//A..Z转换
public char UpcharA(char cha){
int max = char2ASCII('Z');
int i = char2ASCII(cha) + 5;
if (i > max) {
i = i - 26;
}
return ascii2Char(i);
}
//0..9转换
public char UpcharN(char cha){
int max = char2ASCII('9');
int i = char2ASCII(cha) + 3;
if (i > max) {
i = i - 10;
}
return ascii2Char(i);
}
public String Encrypt(String s, int key){
String ss = "";
int iTmp = key;
char[] c = s.toCharArray();
for(int i=0;i <c.length; i++){
ss += ascii2Char(Char2Byte(c[i])^iTmp);
iTmp = Char2Byte(c[i]) + i;
}
return ss;
}
public String myStrToHex(String s){
String strTmp = "";
char[] c = s.toCharArray();
for(int i=0; i< c.length; i++){
String strT = Integer.toHexString(char2ASCII(c[i])) + ""; String str = "00";
// if (2-strT.length() != 0){
// strT = str.substring(1, 2-strT.length()) + strT;
// } if (strT.length() < 2){
strT += "0";
}
strTmp +=strT;
}
return strTmp.toUpperCase();
}
public String GetPassWord(String s){
char[] c = s.toCharArray();
String strTmp = "";
for(int i=0; i<c.length; i++){
char cT = 'a';
if(Character.isLowerCase(c[i])){
cT = Upchar(c[i]);
}else if(Character.isUpperCase(c[i])){
cT = UpcharA(c[i]);
}else if(Character.isDigit(c[i])){
cT = UpcharN(c[i]);
}
strTmp += String.valueOf(cT);
}
strTmp = Encrypt(strTmp, 123);
strTmp = myStrToHex(strTmp);
return strTmp;
}
public static void main(String[] args) {
System.out.println(new pass().GetPassWord("0"));
}
}