當前位置:首頁 » 密碼管理 » delphijava加密解密

delphijava加密解密

發布時間: 2022-07-17 03:43:02

『壹』 delphi java 有沒有能相互base64編碼的方法啊

base64都是標準的編碼方式,是通用的。

Delphi、java各自用自己的函數進行編碼,是可以相互進行解析的。

『貳』 Delphi版的cryptoAPI加解密問題

cryptoAPI 應該是通過獲取電腦CPU,BIOS,硬碟ID等信息來加密的吧!
這些信息有時候根據電腦不同,可能獲取的到也許獲取不到!可能是因為這個原因,所以說有的可以加密成為密文有的不可以。具體你要了解它使用到的一些函數。

『叄』 如何在Delphi軟體中實現對配置文件的加密解密

直接先加密在放到ini 文件里
要用的時候直接解密出來就可以了
至於用什麼加密演算法看你自己喜歡
推薦用base64演算法不錯 網上到處有的下

『肆』 用Delphi製作文本文檔程序,在文本中內容加密,我的思路是把文本內容打成亂碼,在點擊「解密」變回原來的

我以前也做過這種小程序。這個演算法你可以自己設計,也可以用像什麼MD5之類的加解密演算法咯。

但因為不能粘貼附件,所以就貼點代碼。

procere TForm1.N2Click(Sender: TObject);//打開文件
var
tl:string;
begin
if OpenDialog1.Execute then
begin
ListBox1.Clear;
Caption:='文件加密解密器'+OpenDialog1.FileName;
AssignFile(ATextFile,OpenDialog1.FileName);
Reset(ATextFile);
while not eof(ATextFile) do
begin
Readln(ATextFile,tl);
ListBox1.Items.Add(tl);
end;
CloseFile(ATextFile);
end;
end;

function Encode(s:string):string;//加密的核心部分
var
n,i:integer;
str:string;
begin
n:=length(s);
str:='';
for i:=1 to n do
begin
str:=str+char(ord(s[i])+10);
end;
Encode:=str;
end;

function Decode(s:string):string;//解密的核心部分
var
n,i:integer;
str:string;
begin
n:=length(s);
str:='';
for i:=1 to n do
begin
str:=str+char(ord(s[i])-10);
end;
Decode:=str;
end;

procere TForm1.N3Click(Sender: TObject);//加密
var
ln:integer;
tl,nl:string;
begin
if SaveDialog1.Execute then
begin
AssignFile(ATextFile,SaveDialog1.FileName);
Rewrite(ATextFile);
for ln:=0 to ListBox1.Items.Count-1 do
begin
tl:=ListBox1.Items[ln];
nl:=Encode(tl);//加密
Writeln(ATextFile,nl);
end;
CloseFile(ATextFile);
end;
end;

procere TForm1.N4Click(Sender: TObject);//解密
var
ln:integer;
tl,nl:string;
begin
if SaveDialog1.Execute then
begin
AssignFile(AtextFile,SaveDialog1.FileName);
Rewrite(ATextFile);
for ln:=0 to ListBox1.Items.Count-1 do
begin
tl:=ListBox1.Items[ln];
nl:=Decode(tl);//解密
Writeln(ATextFile,nl);
end;
CloseFile(ATextFile);
end;
end;

『伍』 Delphi加密演算法

我用的加密解密
function EncryptString(Source, Key: string): string;
//對字元串加密(Source:源 Key:密匙)
var
KeyLen: integer;
KeyPos: integer;
Offset: integer;
Dest: string;
SrcPos: integer;
SrcAsc: integer;
Range: integer;
begin
KeyLen := Length(Key);
if KeyLen = 0 then
Key := 'delphi';
KeyPos := 0;
Range := 256;
randomize;
Offset := random(Range);
Dest := format('%1.2x', [Offset]);
for SrcPos := 1 to Length(Source) do
begin
SrcAsc := (Ord(Source[SrcPos]) + Offset) mod 255;
if KeyPos < KeyLen then
KeyPos := KeyPos + 1
else
KeyPos := 1;
SrcAsc := SrcAsc xor Ord(Key[KeyPos]);
Dest := Dest + format('%1.2x', [SrcAsc]);
Offset := SrcAsc;
end;
result := Dest;
end;
function UnEncryptString(Source, Key: string): string;
//對字元串解密(Src:源 Key:密匙)
var
KeyLen: integer;
KeyPos: integer;
Offset: integer;
Dest: string;
SrcPos: integer;
SrcAsc: integer;
TmpSrcAsc: integer;
begin
KeyLen := Length(Key);
if KeyLen = 0 then
Key := 'delphi';
KeyPos := 0;
Offset := strtoint('$' + (Source, 1, 2));
SrcPos := 3;
repeat
SrcAsc := strtoint('$' + (Source, SrcPos, 2));
if KeyPos < KeyLen then
KeyPos := KeyPos + 1
else
KeyPos := 1;
TmpSrcAsc := SrcAsc xor Ord(Key[KeyPos]);
if TmpSrcAsc <= Offset then
TmpSrcAsc := 255 + TmpSrcAsc - Offset
else
TmpSrcAsc := TmpSrcAsc - Offset;
Dest := Dest + chr(TmpSrcAsc);
Offset := SrcAsc;
SrcPos := SrcPos + 2;
until SrcPos >= Length(Source);
result := Dest;
end;

『陸』 急! php寫的加密函數如何用java解密

php,jsp,delphi多語言兼容的簡單的加密解密演算法,jsp目前暫時沒有實現中文的加密解密兼容。希望哪路高手能幫忙補上。
1,php的需要對以上代碼稍加修改,內容如下:
<?php

$key = "admin";

function keyED($txt,$encrypt_key) {
$encrypt_key = md5($encrypt_key);
$ctr=0;
$tmp = "";
for ($i=0;$i<strlen($txt);$i++){
if ($ctr==strlen($encrypt_key)) $ctr=0;
$tmp.= substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1);
$ctr++;
}
return $tmp;
}

function encrypt($txt,$key){
srand((double)microtime()*1000000);
$encrypt_key = md5(rand(0,32000));
$ctr=0;
$tmp = "";
for ($i=0;$i<strlen($txt);$i++){
if ($ctr==strlen($encrypt_key)) $ctr=0;
$bbb=substr($encrypt_key,$ctr,1) .
(substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1));
$tmp.= $bbb;
$ctr++;
}
return base64_encode(keyED($tmp,$key));
}

function decrypt($txt,$key){
$txt=base64_decode($txt);
$txt = keyED($txt,$key);
$tmp = "";
for ($i=0;$i<strlen($txt);$i++){
$md5 = substr($txt,$i,1);
$i++;
$tmp.= (substr($txt,$i,1) ^ $md5);
}
return $tmp;
}

$string = "hello world!";

// encrypt $string, and store it in $enc_text
$enc_text = encrypt($string,$key);

// decrypt the encrypted text $enc_text, and store it in $dec_text
$dec_text = decrypt($enc_text,$key);
echo "原字元串: ".$string."<br/>";
echo "加密字元串: ".$enc_text."<br/>";
echo "解密字元串: ".$dec_text."<br/>";
?>
2,jsp代碼(java類)
package com.intwork.struct.common;

import java.util.Random;

import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

public class KeyED {

public char[] keyED(char[] cText,String encrype_key){
encrype_key=MD5.getInstance(encrype_key).encrypt();
int ctr=0;
char[] cEncrype_key=encrype_key.toCharArray();
char[] temp=new char[cText.length];
int ind=0;
String tmp="";
for(int i=0;i<cText.length;i++){
if(ctr==cEncrype_key.length){
ctr=0;
}
temp[ind++]=(char)(cText[i] ^ cEncrype_key[ctr]);
ctr++;
}
return temp;
}

public String encrype(String text,String key){
String encrype_key=MD5.getInstance(String.valueOf(new Random().nextInt(1000000))).encrypt();
int ctr=0;
char[] cText=text.toCharArray();
char[] cEncrype_key=encrype_key.toCharArray();
char[] temp=new char[cText.length*2];
int ind=0;
String tmp="";
for(int i=0;i<cText.length;i++){
if(ctr==cEncrype_key.length){
ctr=0;
}
temp[ind++]=cEncrype_key[ctr];
temp[ind++]=(char)(cText[i]^cEncrype_key[ctr]);
ctr++;
}
BASE64Encoder b = new sun.misc.BASE64Encoder();
return b.encode(new String(this.keyED(temp,key)).getBytes());
}

public String decrype(String text,String key)throws Exception{
BASE64Decoder decoder = new BASE64Decoder();
text=new String(decoder.decodeBuffer(text));
char[] cText=text.toCharArray();
char[] temp=new char[cText.length/2];
int ind=0;
cText=this.keyED(cText, key);
String tmp="";
for(int i=0;i<cText.length;i++){
char md5=cText[i];
i++;
temp[ind++]=(char)(cText[i]^md5);
}
return new String(temp);
}
}

3,delphi代碼(只有加密代碼,沒寫解密代碼。有興趣的可以給補上)

function Tfrmunmsgmain.EnPlugPwcrypt(str, skey: string): string;
//加密插件用的字元串
var
IdEncoder64: TIdEncoderMIME;
sencrypt_key, stemp, stemp1 : string;
ictr, i : Integer;
ifirst, ilast : Integer;

function enpwcrypt(str, skey: string): string;
//獲取加密後的字元串
var
stemp, sencrypt_key : string;
ictr, i : Integer;
ifirst, ilast : Integer;
begin
try
result := '';
try
sencrypt_key := LowerCase(UMD5Crypt.UGetMd5Str(skey));
ictr := 1;
stemp := '';
for I := 1 to length(str) do
begin
if (ictr = length(sencrypt_key)) then
ictr := 1;
ifirst := Ord(midstr(str,i,1)[1]);
ilast := Ord(midstr(sencrypt_key,ictr,1)[1]);
stemp := stemp +
chr((ifirst) XOR (ilast));
inc(ictr);
end;
result := stemp;
except

end;
except

end;
//
end;

begin
try
result := '';
try
IdEncoder64 := TIdEncoderMIME.Create(Application);
sencrypt_key := LowerCase(UMD5Crypt.UGetMd5Str(inttostr((Random(100000)))));
ictr := 1;
stemp := '';
stemp1 := '';
for I := 1 to length(str) do
begin
if (ictr = length(sencrypt_key)) then
ictr := 1;
ifirst := Ord(midstr(str,i,1)[1]);
ilast := Ord(midstr(sencrypt_key,ictr,1)[1]);
stemp1 := midstr(sencrypt_key,ictr,1) +
chr((ifirst) XOR (ilast));
stemp := stemp + stemp1;
inc(ictr);
end;
result := IdEncoder64.Encode(enpwcrypt(stemp, skey))
finally
freeandnil(IdEncoder64);
end;
except

end;
end;

『柒』 delphi 數字加密和解密演算法

function Enc(Str:String):String;//字元加密函數 這是用的一個異或加密
var
i,j:Integer;
begin
Result:='';
j:=0;
for i:=1 to Length(Str) do
begin
Result:=Result+IntToHex(Byte(Str[i]) xor XorKey[j],2);
j:=(j+1) mod 8;
end;
end;

function Dec(Str:String):String;//字元解密函數
var
i,j:Integer;
begin
Result:='';
j:=0;
for i:=1 to Length(Str) div 2 do
begin
Result:=Result+Char(StrToInt('$'+Copy(Str,i*2-1,2)) xor XorKey[j]);
j:=(j+1) mod 8;
end;
end;

『捌』 delphi中有沒有什麼函數或控制項是直接進行數據加密、解密的

有.
uses IdHash,IdHashMessageDigest;

var mdA:TIdHashMessageDigest5; mdB:T4x4LongWordRecord;
begin
mdA:=TIdHashMessageDigest5.Create;
mdB:=mdA.HashValue('your string.');//加密
Result:=LowerCase(mdA.AsHex(mdB))
end;

熱點內容
安卓如何設置抖音自動播放 發布:2025-05-11 06:32:21 瀏覽:670
c交互腳本 發布:2025-05-11 06:19:57 瀏覽:529
赤壁為什麼連接不上伺服器 發布:2025-05-11 06:14:49 瀏覽:772
linuxmysql源碼包 發布:2025-05-11 06:07:39 瀏覽:621
密碼提示默認是什麼意思 發布:2025-05-11 06:06:52 瀏覽:635
python語言編程入門 發布:2025-05-11 06:06:49 瀏覽:800
安卓855手機哪個性能最好 發布:2025-05-11 06:01:49 瀏覽:144
xrv哪些配置帶天窗 發布:2025-05-11 05:53:10 瀏覽:508
簡述ftp伺服器的功能 發布:2025-05-11 05:44:27 瀏覽:848
安卓手機攝像頭連接雲存儲 發布:2025-05-11 05:10:52 瀏覽:35