MD5的加密和解密算法
先解释下:
MD5是不可逆,这里的加密解密,你可以看到是对MD5算法先加密后解密,而不是对MD5的解密
package com.test;import java.security.MessageDigest;public class DecryptMD5 {// MD5加码。32位 public static String MD5(String inStr) { MessageDigest md5 = null; try { md5 = MessageDigest.getInstance("MD5"); } catch (Exception e) { System.out.println(e.toString()); e.printStackTrace(); return ""; } char[] charArray = inStr.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(); } // 可逆的加密算法 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; } // 加密后解密 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("sa"); 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)))); } }
MD5的加密和解密算法相关推荐
- php 结合md5的加密,解密方法
php 结合md5的加密,解密方法 张映 发表于 2012-06-28 分类目录: php 标签:md5, php 最近在整理代码发现了一个不错的东西,结合md5的加解密算法.网上关于php结合md5 ...
- php 加盐md5,php 结合md5的加密,解密方法
最近在整理代码发现了一个不错的东西,结合md5的加解密算法.网上关于php结合md5的加密,解密算法比较少的,其实php手册里面就有,改一改就行了.在此贴一下,用这算法要加载一个php模块mcrypt ...
- 常见的加密和解密算法—MD5
转载:https://www.cnblogs.com/maohuidong/p/7967257.html 常见的加密和解密算法-MD5 一.MD5加密概述 Message Digest Algorit ...
- aes加密算法python实现_Python基于pycrypto实现的AES加密和解密算法示例
本文实例讲述了Python基于pycrypto实现的AES加密和解密算法.分享给大家供大家参考,具体如下: 一 代码 # -*- coding: UTF-8 -*- import string imp ...
- C语言加密和解密算法
C语言加密和解密算法 简介:字符串的加密和解密方法一直被广泛应用,最常见的无非是 MD5 散列函数(MD5是信息摘要的一种,可以从任意长度的字符串生成128位的哈希值). 先来看代码:(注意作者代码中 ...
- 字符串加密、解密算法
字符串加密.解密算法包括: MD5.Des.Base64三种方式,详情如下所示:using System; using System.Collections.Generic; using System ...
- java加密与解密工具_cat: CAT,全称Cryptographic Algorithm Tool,是一款小巧的Java加密与解密算法调用工具包...
cat 一.介绍 cat:全称Cryptographic Algorithm Tool 主要提供以下加密算法调用: 1.AES 2.DES 3.DSA 4.MD5 5.MersenneTwister( ...
- 不错的威盾PHP加密专家解密算法
<?php /*********************************** *威盾PHP加密专家解密算法 http://www.my400800.cn **************** ...
- 简单移位密码——凯撒加密、解密算法
简单移位密码--凯撒加密.解密算法 移位密码是简单的替换密码(simple substitution cipher),即将明文的一个字符用相应的一个密文字符替换. 算法描述:设P=C=K=Z26,对k ...
最新文章
- 3.20周记:栈和队列
- 【PAT】A1079 Total Sales of Supply Chain
- python封装类连接mysql数据_python操作mysql数据库基本类封装
- 五:CentOS7安装出现Warning
- Linux 命令之 sudo -- 以其他用户身份来执行命令
- 工作项跟踪管理系统需求
- 基于机器学习的网络安全态势感知
- 计算机二级34套word答案,全国计算机二级C选择题题库第34套
- 如何在Java的特定范围内生成随机整数? [英]How do I generate random integers within a specific range in Java?
- 独家 | 精彩!这27本书籍,每位数据科学家都应该阅读(附说明图表)
- 概要设计说明书【校园BBS论坛】2022-5.5
- Apache和Httpd是什么关系
- 成都实施垃圾分类草案
- 腾达无线打印服务器,(原创)腾达PA + PA3电力猫扩展无线信号 路由器LAN口智能扩展...
- 一个碌碌无为的程序员
- 服务器cpu哪个型号主频最高,史上最高主频 默认4.4GHz至强CPU发布
- AVG神作是如何炼成的? 《逆转裁判》成步堂三部曲解析
- 2021-06-10 multisim仿真,高温报警电路555
- 在设备树中时钟的简单使用
- 新中式风格有哪些特点?新中式风格装修有哪些注意事项?
热门文章
- 【MySQL】SHOW WARNINGS和SHOW ERRORS的作用是什么?
- cm11修改wifi_mac地址
- Maven项目插件飘红解决方案
- 学会Python后利用WiFi就可以获取妹子的微信号啦
- 解决小米miui系统调用系统裁剪图片功能崩溃失败的问题
- 拉依达准则的python代码
- DTI-ATS入门(1):DTI综述
- WordCAT 一款功能强大、免费共享的Word文档计算机辅助翻译软件
- Debug:‘boost::this_thread‘ has not been declared; undefined reference to ‘boost::this_thread...‘
- iOS面试攻略,你必须拥有