MD5加密、DES加解密、RSA加解密

1.MD5加密:

java.security.MessageDigest

jdk1.6描述:

此 MessageDigest 类为应用程序提供信息摘要算法的功能,如 MD5 或 SHA 算法。信息摘要是安全的单向哈希函数,它接收任意大小的数据,并输出固定长度的哈希值。

MessageDigest 对象开始被初始化。该对象通过使用 update 方法处理数据。任何时候都可以调用 reset 方法重置摘要。一旦所有需要更新的数据都已经被更新了,应该调用 digest 方法之一完成哈希计算。 

public static String MD5(String str) {
if (str == null)
return null;
try {
MessageDigest md5 = MessageDigest.getInstance("MD5");
md5.update(str.getBytes("UTF-8"));
byte[] digest = md5.digest();
StringBuffer hexString = new StringBuffer();
String strTemp;
for (int i = 0; i < digest.length; i++) {
strTemp = Integer.toHexString((digest[i] & 0x000000FF) | 0xFFFFFF00).substring(6);
hexString.append(strTemp);
}
return hexString.toString();
} catch (Exception e) {
e.printStackTrace();
}
return str;
}


2.DES加解密

/**
* DES加密
*/
public static String desEncrypt(String source, String desKey) throws Exception {
try {
// 从原始密匙数据创建DESKeySpec对象
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey securekey = keyFactory.generateSecret(new DESKeySpec(desKey.getBytes()));
// Cipher对象实际完成加密操作
Cipher cipher = Cipher.getInstance("DES");
// 用密匙初始化Cipher对象
cipher.init(Cipher.ENCRYPT_MODE, securekey);
// 现在,获取数据并加密
byte[] destBytes = cipher.doFinal(source.getBytes());
StringBuilder hexRetSB = new StringBuilder();
for (byte b : destBytes) {
String hexString = Integer.toHexString(0x00ff & b);
hexRetSB.append(hexString.length() == 1 ? 0 : "").append(hexString);
}
return hexRetSB.toString();
} catch (Exception e) {
throw new Exception("DES加密发生错误", e);
}
}


/**
* DES解密
*/
public static String desDecrypt(String source, String desKey) throws Exception {
// 解密数据
byte[] sourceBytes = new byte[source.length() / 2];
for (int i = 0; i < sourceBytes.length; i++) {
sourceBytes[i] = (byte) Integer.parseInt(source.substring(i * 2, i * 2 + 2), 16);
}
try {
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey securekey = keyFactory.generateSecret(new DESKeySpec(desKey.getBytes()));
Cipher cipher = Cipher.getInstance("DES");
// 用密匙初始化Cipher对象
cipher.init(Cipher.DECRYPT_MODE, securekey);
// 现在,获取数据并解密
byte[] destBytes = cipher.doFinal(sourceBytes);
return new String(destBytes);
} catch (Exception e) {
throw new Exception("DES解密发生错误", e);
}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Delphi是一种编程语言,可以用于开发各种类型的应用程序,包括加密解密相关的软件。在Delphi中,可以使用不同的算法和方法来实现加密解密功能。 其中,常见的加密算法有对称加密和非对称加密。 对称加密是指使用同一个密钥同时进行加密和解密的算法,常见的对称加密算法有DES、AES等。在Delphi中,可以使用相应的库函数或组件实现对称加密。通过将明文和密钥作为输入,调用相应的函数即可得到密文。同样,通过将密文和密钥作为输入,调用相应的函数也可以实现解密操作。 非对称加密则不同,它使用一对密钥:公钥和私钥。公钥用于加密数据,私钥用于解密数据。常见的非对称加密算法有RSA等。在Delphi中,同样可以使用相应的库函数或组件实现非对称加密。通过将明文和公钥作为输入,调用相应的函数即可得到密文。而解密操作则需要将密文和私钥作为输入,调用相应的函数进行解密。 除了对称加密和非对称加密外,Delphi还支持哈希算法,用于生成数据的哈希值。常见的哈希算法有MD5、SHA1、SHA256等。哈希算法主要用于验证数据的完整性,不可逆的特性使其在密码存储和数字签名等领域得到广泛应用。 总之,Delphi提供了丰富的加密解密功能,开发者可以根据具体需求选择合适的加密算法和方法来保护数据的安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值