--delphi
procedure Encrypt(Value: PAnsiChar; Size: Integer; const PSW: AnsiString); overload;
var
i,l: Integer; w: PAnsiChar;
procedure E(ic: PAnsiChar; pc: AnsiChar); begin ic^ := AnsiChar(Byte((ic^)) xor Byte(pc)); end;
begin
w := PAnsiChar(PSW); l := Length(PSW);
for i := 0 to Size - 1 do E((Value + i),(w + (i mod l))^);
end;
function Encrypt(Value: AnsiString; const PSW: AnsiString; Flag: Boolean): AnsiString; overload
var
Data,Tmp: AnsiString;
i: Integer;
p: PAnsiChar;
begin
Result := '';
if Flag then begin // 加密后编码
if Length(Value) = 0 then Exit;
SetLength(Data,Length(Value)); StrCopy(PAnsiChar(Data),PAnsiChar(Value));
Encrypt(PAnsiChar(Data),Length(Data),PSW); p := PAnsiChar(Data);
for i := 0 to Length(Data) - 1 do
Result := Result + IntToHex(Byte(AnsiChar((p+i)^)),2);
end else begin // 编码后解密
p := PAnsiChar(UpperCase(Value));
for i := 0 to Length(Value) - 1 do
if not ((p + i)^ in ['0'..'9','A'..'F']) then Exit;
for i := 1 to Length(Value) div 2 do
begin
Tmp := '0x' + Copy(Value,i*2-1,2);
StrToInt(Tmp);
Result := Result + AnsiChar(StrToInt(Tmp));
end;
Encrypt(PAnsiChar(Result),Length(Result),PSW);
end;
end;
--c#
public string Encrypt(string user, string pwd, bool flag)
{
char[] uData, pData;
string resultstr = "";
if (flag)
{
uData = user.ToCharArray();
pData = pwd.ToCharArray();
for (int i = 0; i < pwd.Length; i++)
{
string kk = (Convert.ToInt16(uData[i % user.Length] ^ pData[i])).ToString("X");
resultstr += (kk.Length % 2 == 0) ? kk : "0" + kk;
}
}
else
{
uData = user.ToCharArray();
for (int i = 0; i < pwd.Length / 2; i++)
resultstr += (char)(int.Parse(pwd.Substring(i * 2, 2), System.Globalization.NumberStyles.AllowHexSpecifier) ^ uData[i % user.Length]);
}
return resultstr;
}
--java
//加密解密方法
public static String encrypt(String value, String pwd, boolean flag)
{
char[] uData, pData;
StringBuffer sb = new StringBuffer();
String str = "";
if (flag)
{
uData = value.toCharArray();
pData = pwd.toCharArray();
for (int i = 0; i < uData.length; i++)
{
str = "0" + Integer.toHexString(uData[i] ^ pData[i % pData.length]);
sb.append(str.substring(str.length() - 2));
}
}
else
{
pData = pwd.toCharArray();
for (int i = 0; i < value.length() / 2; i++)
{
sb.append((char) ((char)(int)Integer.valueOf(value.substring(
i * 2, (i + 1) * 2), 16) ^ pData[i % pData.length]));
}
}
return sb.toString();
}
分享到:
相关推荐
RSA非对称加密是一种广泛应用的公钥加密算法,由Ron Rivest、Adi Shamir和Leonard ...通过学习和理解"RSA非对称加解密实例"的源码,开发者可以更好地掌握加密解密技术,并将其应用到实际项目中,保障数据的安全传输。
"MyRsa"这个文件可能是包含以上功能的源代码文件,可能有C++或C#实现,其中可能包括类或函数来生成密钥对、进行加密和解密操作,并提供了测试用例以确保算法的正确性。对于开发者来说,理解和实现这样的代码有助于...
在实际应用中,PB字符串加密和解密函数通常会结合使用,比如先使用非对称加密算法加密一个会话密钥,然后使用这个密钥执行对称加密来保护大量数据。这样的混合策略既保证了速度,又确保了安全性。 编写PB加密函数时...
这些控件可能包含内置的加密和解密功能,开发者可以通过调用其方法来实现数据的加解密。 "源码"是指编程语言的原始代码,它可以被编译或解释成可执行程序。对于加密解密函数,源码提供了透明度,允许开发者查看并...
- `openssl_decrypt()`: 对应的解密函数,它使用相同的密钥和参数(除了密文)来恢复原始数据。 4. **加密算法** - PHP支持多种加密算法,如AES(高级加密标准)、DES、3DES等。AES是一种广泛应用的对称加密算法...
在C#中,加解密是安全领域的重要组成部分,用于保护数据的隐私和安全性。本文将详细介绍对称加密(AES和DES)、非对称加密(RSA)以及散列函数(MD5)在C#中的应用。 1. **对称加密**: 对称加密是一种常见的加密...
"RSA加解密及公钥密生成工具"这个文件可能是包含上述功能的Delphi源码文件或者一个简单的GUI应用程序,它提供了一个用户友好的界面,使得用户能够轻松地生成RSA密钥对,并进行加密和解密操作。 通过学习和理解这段...
如果"易语言一个自编的加解密函数"中包含对称加密函数,可能涉及到密钥的生成、存储和交换等过程的设计。 2. 非对称加密:非对称加密使用一对公钥和私钥,公钥可以公开,用于加密;私钥必须保密,用于解密。这种...
函数 `DES.EncryptBlock` 实现了加密单个分组的操作,而函数 `DES_DecryptBlock` 实现了解密单个分组的操作。这些函数使用子密钥和加密解密算法来实现加密和解密操作。 基本操作 DES 算法中还涉及到一些基本操作,...
C#加密解密的函数参考 在软件开发中,数据安全是一个非常重要的方面,特别是在涉及到敏感数据时,如密码、信用卡号码等。C#作为一个强大的编程语言,提供了多种加密和解密的方法来保护数据。本文将介绍C#中的一些...
在IT安全领域,对称加密和哈希函数是两种常用的技术。C#作为一种广泛应用于Windows平台的编程语言,提供了丰富的库来支持这些功能。本文将深入探讨如何在C#中利用HMAC(Hash-based Message Authentication Code)...
总结来说,SQL证书对称和非对称加解密提供了强大的数据保护手段。通过对数据进行加密,我们可以在存储和传输数据时保护其不被未经授权的访问。对称加密适合大量数据的快速加密,而非对称加密则在需要更高安全级别的...
《易语言自编加解密函数详解》 在信息技术领域,数据的安全性是至关重要的,因此加解密技术被广泛应用。易语言,作为一款国产的编程语言,以其简单易学的特点,深受初学者和专业开发者的喜爱。本文将深入探讨在...
在C#编程中,对称加密是一种常见的数据保护方法,它使用相同的密钥进行加密和解密过程。这里我们讨论的类"SymmetricMethod"是一个自定义的C#类,用于实现对称加密算法,特别是使用了RijndaelManaged算法。Rijndael是...
本项目主要涉及到对称加密算法的加解密操作,并在密钥改变时分析其对解密结果的影响。 对称加密算法的历史可以追溯到古罗马时期,但现代计算机科学中的对称加密主要基于更复杂的数学原理。常见的对称加密算法有DES...
本篇文章将详细探讨SQL Server中的加密解密函数,包括非对称密钥、证书加密、对称密钥以及通行短语(PassPhrase)加密。 非对称密钥是一种双钥加密技术,它包含一对公钥和私钥。公钥用于加密数据,而私钥用于解密。...
然后,使用解密后的AES密钥和IV,调用解密函数处理密文,恢复出原始的明文数据。 在MFC中,你可能需要创建一个封装这些加密操作的类,提供方便的接口供其他部分的代码使用。类可以包含初始化方法、加密和解密方法,...
在给定的"对称加解密及文件HASH"工具类中,可能包含了实现DES加密和解密功能的代码,以及计算文件哈希值的函数。这些工具可以帮助开发者快速集成数据加密和完整性验证功能,提升软件的安全性。使用时,开发者可以...
这个压缩包“易语言源码易语言一个自编的加解密函数.rar”显然包含了一个用易语言编写的自定义加解密函数的源代码。 加解密函数在计算机科学中扮演着至关重要的角色,主要用于数据的安全传输和存储。加密是将原始...