`
zhaoshijie
  • 浏览: 2270636 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

MD5加密与解密艺术

阅读更多



关键字:MD5加密与解密艺术

import java.security.MessageDigest;

public class MD5 {

/**
* <pre>
* MD5加密。32位 .
* </pre>
*
* @param pstrPassword  未加密的原文密码
* @return the string
* @author 赵士杰 2011-4-29
*/
public static String md5(String pstrPassword) {
MessageDigest md5 = null;
try {
md5 = MessageDigest.getInstance("MD5");
} catch (Exception e) {
e.printStackTrace();
return "";
}
char[] charArray = pstrPassword.toCharArray();
byte[] byteArray = new byte[charArray.length];

for (int i = 0; i < charArray.length; i++)
byteArray[i] = (byte) charArray[i];

byte[] md5Bytes = md5.digest(byteArray);

StringBuffer hexValue = new StringBuffer();

for (int i = 0; i < md5Bytes.length; i++) {
int val = ((int) md5Bytes[i]) & 0xff;
if (val < 16)
hexValue.append("0");
hexValue.append(Integer.toHexString(val));
}

return hexValue.toString();
}

/**
* <pre>
* 可逆的加密算法(即:对MD5再进行加密).
* </pre>
*
* @param inStr the in str
* @return the string
* @author 赵士杰 2011-4-29
*/
public static String KL(String inStr) {
// String s = new String(inStr);
char[] a = inStr.toCharArray();
for (int i = 0; i < a.length; i++) {
a[i] = (char) (a[i] ^ 't');
}
String s = new String(a);
return s;
}

/**
* <pre>
* 加密后解密(即:将二次加密密码解密为 MD5格式).
* </pre>
*
* @param inStr the in str
* @return the string
* @author 赵士杰 2011-4-29
*/
public static String JM(String inStr) {
char[] a = inStr.toCharArray();
for (int i = 0; i < a.length; i++) {
a[i] = (char) (a[i] ^ 't');
}
String k = new String(a);
return k;
}

// 测试主函数
public static void main(String args[]) {
String s = new String("19840808zsj赵士杰");
System.out.println("原始:" + s);
System.out.println("MD5加密后:" + md5(s));
System.out.println("MD5后再加密:" + KL(md5(s)));
System.out.println("解密为MD5后的:" + JM(KL(md5(s))));
System.out.println("加密的:" + KL(s));
System.out.println("解密的:" + JM(KL(s)));
}
}
  • MD5.rar (911 Bytes)
  • 下载次数: 27
分享到:
评论
2 楼 zhaoshijie 2013-09-09  
LinApex 写道
建议将这篇博客名改成,对MD5再次加密解密的艺术

请问为什么 改成这个样的名字  有什么好的解释吗?
1 楼 LinApex 2013-09-06  
建议将这篇博客名改成,对MD5再次加密解密的艺术

相关推荐

    java 加密艺术源码

    本资料包“java 加密艺术源码”聚焦于Java中常用的加密方法,包括MD5、Hex和Base64编码。下面我们将详细探讨这些知识点。 1. **MD5(Message-Digest Algorithm 5)** MD5是一种广泛使用的哈希函数,它能够将任意...

    java加密解密

    本压缩包文件"Java加密与解密的艺术"显然是一份深入探讨这一主题的源代码集合,旨在帮助开发者更深入地理解和应用这些技术。 首先,Java提供了内置的`java.security`包,它包含了各种加密相关的类和接口,如`Key`, ...

    于MD5算法的身份鉴别技术的研究与实现.pdf

    本文通过对MD5算法原理的深入分析以及与其他加密算法的结合应用,提出了一种基于MD5摘要算法的一次一密方法,有效地提升了身份认证的安全性。这种方案不仅适用于高校的艺术类远程招生与考试管理系统,对于其他需要...

    Art of Cryptography in Java

    同时,文件的加密解密可以通过FileInputStream和FileOutputStream结合Cipher流实现。 9. 安全注意事项 虽然Java提供了强大的加密工具,但开发者仍需注意密钥管理、随机数生成器的使用、防止中间人攻击等问题,以...

    the_art_of_coder

    在Java中,这些加密技术都有内置的API支持,如java.security包下的MessageDigest、KeyPairGenerator、Signature等类,开发者可以方便地实现各种加密解密操作。学习和理解这些概念及其实现,对于提升一个程序员的安全...

    image图片转字符.zip

    【标题】"image图片转字符.zip" 是一个与图像处理相关的压缩文件,它包含了将图片转换为字符艺术的工具或程序。这个工具可能是基于Java编程语言实现的,因为标签中提到了 "java",暗示了这可能是一个Java项目。字符...

    jquery base64 and CryptoJS

    接下来,`CryptoJS`是一个开源的JavaScript加密库,提供了多种加密算法,如AES(高级加密标准)、DES(数据加密标准)、MD5(消息摘要算法5)和SHA(安全散列算法)系列。在`CryptoJS`中,你可以对数据进行加密,...

    现代密码学理论

    MD5和SHA系列(如SHA-256)是常见的哈希函数,它们能够帮助检测数据是否被篡改,广泛应用于密码存储、文件校验等领域。 数字签名则是利用非对称加密原理实现的一种验证机制,它可以确保信息的发送者真实可信,并且...

    此示例 游戏展示了如何将 GameOn API 集成到 Unity游戏引擎中_C#_代码_下载

    我们将使用这个库来加密和解密有效载荷。 GameOnTools.cs:这是一个包装类,它将把 BouncyCastle 库暴露给其余的游戏行为。 /Models:这些是用于解析与 GameOn API 之间的 JSON 的类。 更多详情、使用方法,请...

    密码和iso27000等等

    2. **解密**:与加密相反,解密是将密文恢复为明文的过程。这个过程同样需要正确的密钥。 3. **密钥**:密钥是加密和解密过程中使用的秘密信息,分为对称密钥和非对称密钥。对称密钥是发送者和接收者共享的同一密钥...

    ctf拼图例题-puzzle

    同时,现代密码学中的公钥加密(RSA)、哈希函数(MD5、SHA系列)和对称加密算法(AES)也可能在谜题中出现。 3. 模拟与逻辑推理:有时,谜题可能涉及数字序列、逻辑门或布尔运算,参赛者需要根据给出的图片推断出...

    ciphart-paper

    2. **艺术与加密的结合**:如何使用加密技术创作视觉艺术作品,如数字艺术、加密画作等,这些作品可能隐藏着秘密信息,只有通过解密才能揭示其真实含义。 3. **安全性与美学**:探讨如何在保持艺术美感的同时确保...

    *CTF 2023 Misc

    - 哈希函数(如MD5、SHA-1、SHA-256) - 密码分析方法,如频率分析、生日攻击、蛮力攻击 - 密钥交换协议(如Diffie-Hellman) **网络与Web安全:** - SQL注入、XSS(跨站脚本)、CSRF(跨站请求伪造) - HTTP头部...

    C程序范例宝典(基础代码详解)

    10.2 加密解密 412 实例286 MD5加密 412 实例287 RSA加密 419 实例288 DES加密 420 实例289 RC4加密 424 实例290 SHA1加密 427 实例291 恺撒加密 432 第11章 游戏 435 实例292 猜数字游戏 436 ...

    CryptoLight,用于对设备上的媒体(照片或视频)进行数字签名的库。.zip

    1. **哈希计算**:对媒体文件内容进行哈希运算,如SHA-256或MD5,生成一个唯一的数字指纹。 2. **非对称加密**:使用RSA、ECC等非对称加密算法,用私钥对哈希值进行加密,生成数字签名。 3. **签名验证**:接收方...

    CryptUtils-开源

    除了基本的加密解密,CryptUtils可能还包含了哈希函数,这是一种将任意长度的信息转化为固定长度输出的函数,广泛应用于密码存储、数据完整性校验等领域。常见的哈希函数有MD5和SHA系列,它们都有不可逆的特点,即...

    密码战

    Web Crypto API是现代浏览器内置的加密接口,提供了一系列加密操作,包括密钥生成、加密、解密、签名和验证等。开发者可以利用它来进行更安全的加密操作。 总结: 在"密码战"中,JavaScript以其灵活性和广泛的应用...

    密码学基础课程设计指导书.doc

    密码学不仅仅是关于加密和解密的艺术,它还涉及到如何在敌对的环境中安全地进行通信,如何设计出既安全又高效的密码体制,以及如何分析现有体制的安全性等问题。杨柳教授强调了通过不安全的通信媒介进行安全通信的...

    js代码-生成 签名

    5. **JavaScript中的`crypto`库**:`crypto`是Node.js内置的安全加密模块,提供了各种加密和哈希功能,包括生成哈希、签名、解密等。在浏览器环境中,可以使用Web Cryptography API来实现类似的功能。 6. **README....

    2022第三届网鼎杯白虎组misc034附件

    2. **密码学**:哈希值可能与解密或验证过程有关,可能需要对常见的哈希函数(如MD5、SHA系列)有一定了解,甚至可能涉及到彩虹表、碰撞攻击等高级概念。 3. **Web安全**:如果附件与Web应用相关,可能涉及SQL注入...

Global site tag (gtag.js) - Google Analytics