`

java单向加密,双向加密解密方法介绍,收藏以后开发中必定有用

阅读更多

今天来给大家讲解一下,java如何进行加密解密的,这里面包含java的单向加密解密比如MD5等等,也包含java的双向加密解密方式,比如base64格式的等等,首先先给大家介绍一下大体的加密方法,然后再对具体的给出一些实例:
1.md5/hash加密算法(单向加密)
2.单匙密码体制:DES
3.数字签名
4.非对称密匙密码体制(公匙体系)
5.base64式双向加密解密法:
例如:
 

/ * 编码原理:将3个字节转换成4个字节( (3 X 8) = 24 = (4 X 6) )
      * 先读入3个字节,每读一个字节,左移8位,再右移四次,每次6位,这样就有4个字节了
      *
      * @param data
      * @return 编码后的Base64字符串
      */
     public static String Base64Encode(byte[] data) {
         StringBuilder builder = new StringBuilder();
         int[] temp = new int[4];
         int len = data.length - data.length % 3;
         for (int i = 0; i < len; i += 3) {
             int goal = 0;
             for (int j = 0; j < 3; j++) {
                 goal <<= 8;
                 goal |= (data[i + j] & 0xff);
             }
             for (int k = 0; k < 4; k++) {
                 temp[k] = goal & 0x3f;
                goal >>= 6;
             }
             for (int k = 3; k >= 0; k--) {
                 builder.append(base64_alphabet.charAt(temp[k]));
             }
         }
         int index;
         switch (data.length % 3) {
         case 1:
             index = data[data.length - 1] >> 2;
             builder.append(base64_alphabet.charAt(index));
             index = (data[data.length - 1] & 0x03) << 4;
             builder.append(base64_alphabet.charAt(index));
             builder.append("==");
             break;
         case 2:
             index = data[data.length - 1 - 1] >> 2;
             builder.append(base64_alphabet.charAt(index));
             index = (data[data.length - 1 - 1] & 0x03) << 4
                     | data[data.length - 1] >> 4;
             builder.append(base64_alphabet.charAt(index));
             index = (data[data.length - 1] & 0x0f) << 2;
             builder.append(base64_alphabet.charAt(index));
             builder.append('=');
             break;
         }
         return builder.toString();
     }
 
     /**
      * 解码原理:将4个字节转换成3个字节. 先读入4个6位(用或运算),每次左移6位,再右移3次,每次8位.
      *
      * @param data
      *            需解码的Base64字符串。
      * @return byte[]-解码出的字节数组
      */
     public static byte[] Base64Decode(String data) {
         char[] chArray = data.toCharArray();
         int len = chArray.length;
         byte[] result = new byte[len * 3 / 4];
         for (int i = 0, res_i = 0; i < len; i += 4, res_i += 3) {
             int goal = 0;
             int index = 0;
             for (int k = 0; k < 4; k++) {
                 index = base64_alphabet.indexOf(chArray[i + k]);
                 goal <<= 6;
                 goal |= index;
             }
             for (int j = 2; j >= 0; j--) {
                 result[res_i + j] = (byte) goal;
                 goal >>= 8;
             }
         }
         // 等号=的处理
         if (chArray[len - 1] != '=')
             return result;
         else if (chArray[len - 2] == '=')
             return Arrays.copyOf(result, result.length - 2);
         else
             return Arrays.copyOf(result, result.length - 1);
 
     }
 // 将 s 进行 BASE64 编码
     public static String getBASE64(String s) {
         if (s == null)
             return null;
         return Base64Encode(s.getBytes());
     }
 
     // 将 BASE64 编码的字符串 s 进行解码
     public static String getFromBASE64(String s) {
         if (s == null)
             return null;
         try {
             byte[] b = Base64Decode(s);
             return new String(b);
         } catch (Exception e) {
             return null;
         }
     }

 

6.URLEncoder双向加密解密方式
好了,具体的就先给大家如果大家想看具体的更多的加密方法推荐大家可以去59biye网,查看java加密解密的方法总结

4
1
分享到:
评论
4 楼 11miao 2014-07-05  
我个人还是觉得挺不错的,顶一个
3 楼 59biye 2014-07-04  
只能说写的一般,不怎么有深度。
2 楼 benben 2014-07-04  
自己来助助威
1 楼 i_59biye 2014-07-03  
不错,对我挺有用的,先保存一下再说,谢谢分享。

相关推荐

    C#加密解密DeEncryptHelper.zip

    单向加密 SHA1 单向加密 DES 双向,可解密 加密字符串 加密字符串 密钥为系统默认 加密文件 解密字符串 解密文件 128位MD5算法加密字符串 128位MD5算法加密Byte数组 32位MD5加密 Base64加密 Base64解密 DES加密/解密...

    MD5单向加密,加密后无法解密

    MD5单向加密,加密后无法解密。。。。。。。。。。

    基于JAVA的MD5加密解密实现

    纯JAVA的MD5加密,利用MD5单向函数产生密钥,方便测试

    Java加密与解密的艺术

    全书包含3个部分,基础篇对Java企业级应用的安全知识、密码学核心知识、与Java加密相关的API和通过权限文件加强系统安全方面的知识进行了全面的介绍;实践篇不仅对电子邮件传输算法、消息摘要算法、对称加密算法、非...

    Java加密与解密的艺术配书源代码

    全书包含3个部分,基础篇对Java企业级应用的安全知识、密码学核心知识、与Java加密相关的API和通过权限文件加强系统安全方面的知识进行了全面的介绍;实践篇不仅对电子邮件传输算法、消息摘要算法、对称加密算法、非...

    Tomcat配置https单向加密

    说明tomcat如何配置https单向加密,如何使用jdk提供的keytool建立服务器证书

    C#开发中常用的加密解密方法汇总

    相信很多人在开发过程中经常会遇到需要对一些重要的信息进行加密处理,今天给大家分享我个人总结的一些加密算法: 常见的加密方式分为可逆和不可逆两种方式  可逆:RSA,AES,DES等  不可逆:常见的MD5,SHAD等 一、...

    (最新)解密单向加密公式的公式管理器V6.00

    把“TCalc.dll”公式管理器替换原来目录下的同名文件,可以正常使用,不过要管理器版本号相同才行,否则...点击加密公式,点确定就可以看到单向加密的密码,再返回原来加密那输入密码就可以解开公式,看到原创作者加密的源码.

    单向加密就是用同一个密钥去加密和解密

    工作模式:ECB/CBC 默认情况下iOS是CBC的,我提供的例子是ECB的的工作模式,所以iOS在设置加密参数的时候要添加参数 kCCOptionECBMode

    CryptoService:该库提供单向哈希和双向加密解密服务

    加密服务CryptoService提供单向哈希和双向加密解密服务。包裹状态入门 – 控制台应用程序为了运行CryptoService控制台应用程序,必须事先设置配置文件Aliencube.CryptoService.ConsoleApp.exe.config 。用法 ...

    三种常用加密方法

    单向加密和加密解密的几个例子,希望有志于做这个的人喜欢

    论文研究-基于身份的单向多用的代理重加密方案.pdf

    针对大多单向多用的代理重加密方案存在密文大小、计算代价会随着重加密的次数增多而增加的问题,在Toshihiko的代理重加密方案的基础上,构造了一个基于身份的单向多用的代理重加密方案。相比已有的基于身份的代理重...

    C#开发中经常用的加密解密方法示例

    相信很多人在开发过程中经常会遇到需要对一些重要的信息进行加密处理,今天给大家分享我个人总结的一些加密算法: 常见的加密方式分为可逆和不可逆两种方式  可逆:RSA,AES,DES等  不可逆:常见的MD5,SHAD等 一、...

    java_DigitalSign.rar_ sign md5_hash md5 in java_公钥数字签名_加密_数字签名 j

    (3)接收方首先把接收到的密文用自己的私钥解密,得到明文信息和数字签名,再用发送方的公钥对数字签名进行解密,然后使用相同的单向散列算法来计算解密得到的明文信息,得到信息摘要;对比计算出来的信息摘要和...

    著名的TomCrypt加密解密函数库

    一个超大加密函数库 加密 支持的加密函数 Blowfish XTEA RC5 RC6 SAFER+ Rijndael (aka AES) Twofish SAFER (K64, SK64, K128, SK128) RC2 DES, 3DES CAST5 Noekeon Skipjack Anubis (with optional...

    aes-java:用 Java 编写的单向 128 位 AES ECB 加密

    aes-java 用 Java 编写的 ECB 模式下的 128 位 AES 加密。 不解密文件。 也可在。 用法 从stdin读取二进制文件并在stdout上stdout加密字节。

    Transcend Elite_Win_v3.3.0.0【创见磁盘加密管理工具】

    — 同步:可进行单向或双向同步文件夹的档案。【Windows 版本功能】 — 云端:将Google Drive或Dropbox内的文件备份到创见储存装置。【Windows 版本功能】 — 安全:上锁及解锁整颗可携式固态硬盘。【Windows 版本...

    jasypt-1.9.3.jar

    &gt;Jasypt是一个Java库,可以使开发者不需太多操作来给Java项目添加基本加密功能,而且不需要知道加密原理。 &gt;根据Jasypt官方文档,Jasypt可用于加密任务与应用程序,例如加密密码、敏感信息和数据通信、创建完整检查...

    一个MD5加密算法源码.zip_MD5 算法_md5_加密算法_数据库 加密_算法源码

    MD5就是采用单向加密的加密算法,所谓单向加密就是只能对数据进行加密,也就是说,没有办法对加密以后的数据进行解密。在实际中的一个应用就是数据库中的用户信息加密,当用户创建一个新的账号或者密码,他的信息...

    SFCipher(加解密工具)

    目前这个工具支持对称加密算法(AES、3DES)、非对称加密算法(RSA)、单向散列算法(MD5、SHA1、CRC32)、Base64算法等,后期还会不定时新增别的算法,在使用过程中如有问题欢迎邮件给我,我会及时优化和反馈。

Global site tag (gtag.js) - Google Analytics