首页 > 编程语言 >java后台字符串URLencode、URLdecode及Base64加解密转换

java后台字符串URLencode、URLdecode及Base64加解密转换

时间:2024-01-07 23:01:42浏览次数:37  
标签:URLencode encodedText java String URLdecode Base64 System println final

一、URLencode、URLdecode

// 将application/x-www-from-urlencoded字符串转换成普通字符串  
        String keyWord = URLDecoder.decode("%E4%BD%A0%E5%A5%BD", "utf-8");  
        System.out.println(keyWord);  //输出你好

        // 将普通字符创转换成application/x-www-from-urlencoded字符串  
        String urlString = URLEncoder.encode("你好", "utf-8");  //输出%E4%BD%A0%E5%A5%BD
        System.out.println(urlString);

在线地址:http://tool.chinaz.com/tools/urlencode.aspx

二、Base64加解密

	   	 Base64 base64 = new Base64();

       String encodeText = base64.encodeToString("123456");//加密
       String decodeText = base64.decode(encodedText), "UTF-8");//解密

在线地址:https://base64.us/

三、高效方法:

final Base64.Decoder decoder = Base64.getDecoder();
final Base64.Encoder encoder = Base64.getEncoder();
final String text = "字串文字";
final byte[] textByte = text.getBytes("UTF-8");
//编码
final String encodedText = encoder.encodeToString(textByte);
System.out.println(encodedText);
//解码
System.out.println(new String(decoder.decode(encodedText), "UTF-8"));

四、Java 8之后的作法

Java 8的java.util套件中,新增了Base64的类别,可以用来处理Base64的编码与解码,用法如下:

final Base64.Decoder decoder = Base64.getDecoder();
final Base64.Encoder encoder = Base64.getEncoder();
final String text = "字串文字";
final byte[] textByte = text.getBytes("UTF-8");
//编码
final String encodedText = encoder.encodeToString(textByte);
System.out.println(encodedText);
//解码
System.out.println(new String(decoder.decode(encodedText), "UTF-8"));

与sun.mis c套件和Apache Commons Codec所提供的Base64编解码器来比较的话,Java 8提供的Base64拥有更好的效能。实际测试编码与解码速度的话,Java 8提供的Base64,要比sun.mis c套件提供的还要快至少11倍,比Apache Commons Codec提供的还要快至少3倍。因此在Java上若要使用Base64,这个Java 8底下的java .util套件所提供的Base64类别绝对是首选!

标签:URLencode,encodedText,java,String,URLdecode,Base64,System,println,final
From: https://blog.51cto.com/u_16421711/9135415

相关文章

  • Java Steam 常用 API
    微信公众号:运维开发故事作者:wanger现在Java17和Java11基本上可以和Java8平分JDK装机比例。下面是我常用的一些StremAPI操作。除了分组、转换、排序,如果大家还有更多常用的API可以一起留言交流。分组List 默认分组过后是Map<Key,List>List<StreamItem>streamLis......
  • javascript基础学习系列一:标识符
    一般来说,语言中的标识符可以分为两类,一类用于命名语法(以及类型),一类用于命名值(的存储位置)。前者被称为“语法关键字”,后者则被称为“变量”和“常量”。由此引入了一个概念:绑定。从标识符的角度来说,绑定分为语法关键字与语法(语义)逻辑的绑定,以及变量与它所存储值的位置的绑定......
  • Java中DTO和VO的使用指南
    @[TOC]Java中DTO和VO的使用指南在Java开发中,DTO(DataTransferObject)和VO(ValueObject)是两个常见的设计模式,它们在不同的上下文中有着不同的用途。本文将深入讨论DTO和VO的概念、用途以及在实际项目中的使用方法。1.DTO(数据传输对象)DTO是一种用于在不同层之间传递数据的对象,其主要......
  • Java学习网站,哪个最靠谱?
    简介Java学习网站有很多,哪个最靠谱呢?本文对Java学习网站进行对比。第1类:大型培训机构(黑马等)典型机构黑马、尚硅谷、动力节点、白马、千锋、达内。优点知名度高。教程齐全(Java、前端、Python等都有)省心(跟着培训的进度走,不需要自己找资料)缺点学习成本高。(几百到几万不等)。教程质量......
  • 长见识!!!Java中除了消息队列之外,竟然还能这样实现异步任务
    什么是Java事件在Java中,"event"(事件)通常用于指代一种在特定条件下触发的通知或者信号。在Java编程中,事件代表着程序中发生的某种动作或改变,例如用户的交互操作、状态的转换,或者其他外部因素触发的通知。Java中的事件通常与事件监听器(EventListener)和事件处理器(EventHandler)一起使......
  • 【Java技术深入解析】「核心技术提升」最流行的Java模拟框架Mockito入门指南(Java单元
    官方资源官方网站http://mockito.org版本介绍还在使用Mockito1.x?看看Mockito2有哪些新功能!Mockito3没有引入任何破坏性的API变动,但现在需要Java8而不是Mockito2的Java6。Mockito4删除了过时的API。Mockito5将默认mockmaker改为mockito-inline,现在需要Ja......
  • date java时间转化
    Java时间转化在Java中,时间的处理是非常常见的需求之一。我们经常需要将时间从一种格式转化为另一种格式,或者进行时间的计算和比较等操作。Java为我们提供了强大的日期和时间处理类库,可以帮助我们轻松完成这些任务。Date类和DateFormat类Java中最基本的时间处理类是java.util.Dat......
  • 【多线程】JAVA中的锁
    锁作用java中的锁是用来控制多个线程访问共享资源的方式。一般来说一个锁能够防止多个线程同时访问共享资源(读写锁,读锁是共享锁允许多个线程读共享资源)。锁的分类乐观锁:在访问资源时,认为竞争不总是存在,所以在访问共享资源时不加锁,而是在更新数据时判断共享资源是否被其他线......
  • 【Java 并发】线程同步
    目录线程同步条件对象synchronized关键字监视器volatile线程同步条件对象通常线程进入临界区,却发现需要满足某一个条件后,才能继续执行,这时,就需要使用一个条件对象,来管理那些已经获得了一个锁,但是,却不做有用工作的线程。这些条件对象经常被称为条件变量(ConditionalVariable)。......
  • Java之转换流的详细解析
     2.转换流2.1字符编码和字符集字符编码计算机中储存的信息都是用二进制数表示的,而我们在屏幕上看到的数字、英文、标点符号、汉字等字符是二进制数转换之后的结果。按照某种规则,将字符存储到计算机中,称为编码。反之,将存储在计算机中的二进制数按照某种规则解析显示出来,称为解码......