当前位置:   article > 正文

Java base64加密解密 两种实现方式_base64.getencoder()

base64.getencoder()

1、为什么要使用Base 64

    Base 64主要用途不是加密,而是把一些二进制数转成普通字符,方便在网络上传输。 由于一些二进制字符在传输协议中属于

控制字符,不能直接传送,所以需要转换一下才可以。由于某些系统中只能使用ASCII字符,Base64就是用来将非ASCII字符的数

据转换成ASCII字符的一种方法,Base64特别适合在http,mime协议下快速传输数据。比如网络中图片的传输。

     Base64,并非安全领域下的加密解密算法。虽然经常遇到所谓的base64的加密解密。但base64只能算是一个编码算法,对数

据内容进行编码来适合传输。虽然base64编码过后原文也变成不能看到的字符格式,但是方式初级又简单。

2、Base 64 原理

        Base64编码方法,要求把每三个8Bit的字节转换为四个6Bit的字节,其中,转换之后的这四个字节中每6个有效bit为是有效

数据,空余的那两个 bit用0补上成为一个字节。因此Base64所造成数据冗余不是很严重,Base64是当今比较流行的编码方法,

因为它编起来速度快而且简单。



 举个例子,有三个字节的原始数据:aaaaaabb bbbbccccc ccdddddd(这里每个字母表示一个bit位)
 那么编码之后会变成:      00aaaaaa 00bbbbbb 00cccccc 00dddddd

所以可以看出base64编码简单,虽然编码后不是明文,看不出原文,但是解码也很简单

2、Base64加密解密的实现方式:两种

 

  1. package com.liuxd;
  2. import sun.misc.BASE64Decoder;
  3. import sun.misc.BASE64Encoder;
  4. import java.util.Base64;
  5. /**
  6. * Created by Liuxd on 2018-11-02.
  7. */
  8. public class TestString {
  9. public static void main(String[] args) throws Exception {
  10. String str = "青锋剑,偃月刀";
  11. base64(str);
  12. enAndDeCode(str);
  13. }
  14. /**
  15. * Base64
  16. *
  17. */
  18. public static void base64(String str) {
  19. byte[] bytes = str.getBytes();
  20. //Base64 加密
  21. String encoded = Base64.getEncoder().encodeToString(bytes);
  22. System.out.println("Base 64 加密后:" + encoded);
  23. //Base64 解密
  24. byte[] decoded = Base64.getDecoder().decode(encoded);
  25. String decodeStr = new String(decoded);
  26. System.out.println("Base 64 解密后:" + decodeStr);
  27. System.out.println();
  28. }
  29. /**
  30. * BASE64加密解密
  31. */
  32. public static void enAndDeCode(String str) throws Exception {
  33. String data = encryptBASE64(str.getBytes());
  34. System.out.println("sun.misc.BASE64 加密后:" + data);
  35. byte[] byteArray = decryptBASE64(data);
  36. System.out.println("sun.misc.BASE64 解密后:" + new String(byteArray));
  37. }
  38. /**
  39. * BASE64解密
  40. * @throws Exception
  41. */
  42. public static byte[] decryptBASE64(String key) throws Exception {
  43. return (new BASE64Decoder()).decodeBuffer(key);
  44. }
  45. /**
  46. * BASE64加密
  47. */
  48. public static String encryptBASE64(byte[] key) throws Exception {
  49. return (new BASE64Encoder()).encodeBuffer(key);
  50. }
  51. }

输出结果:

Base 64 加密后:6Z2S6ZSL5YmR77yM5YGD5pyI5YiA
Base 64 解密后:青锋剑,偃月刀

sun.misc.BASE64 加密后:6Z2S6ZSL5YmR77yM5YGD5pyI5YiA

sun.misc.BASE64 解密后:青锋剑,偃月刀

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/在线问答5/article/detail/953523
推荐阅读
相关标签
  

闽ICP备14008679号