- 博客(102)
- 资源 (18)
- 收藏
- 关注
原创 HTTPS安全通信
客户端收到服务端返回的加密方案密文后,使用自己的私钥进行解密,获取具体加密方式,而后,产生该加密方式的随机码,用作加密过程中的密钥,使用之前从服务端证书中获取到的公钥进行加密后,发送给服务端;服务端收到客户端发送的消息后,使用自己的私钥进行解密,获取对称加密的密钥,在接下来的会话中,服务器和客户端将会使用该密码进行对称加密,保证通信过程中信息的安全;客户端接收到服务端返回的加密方式后,使用该加密方式生成产生随机码,用作通信过程中对称加密的密钥,使用服务端返回的公钥进行加密,将加密后的随机码发送至服务器;
2023-08-09 07:11:30 811
原创 加密和密钥管理(Cryptography and Key Management)
单向加密是不可逆的,MD5、SHA、MAC 都是单向加密算法,也称之为摘要算法。MD5、SHA 会根据明文用哈希算法计算一个固定长度的摘要(哈希值),然后把明文和摘要发送给接收者,接收者根据同样的算法计算出摘要,对比两个摘要是否一样即可验证明文的正确性。它的应用场景是防止报文被篡改和校验数据。MD5、SHA 等算法是开源的,容易被试探出来。有没有更安全的摘要算法呢?HMAC(带密钥的哈希函数),用一个密钥和一个明文消息作为输入,生成一个消息摘要。
2023-08-07 06:13:30 217
原创 Java Security
之前介绍XML的时候讲过,今天我们具体聊聊Java安全方面的知识。Java Security 是 Java 平台提供的安全机制和 API,用于保护 Java 应用程序和用户的数据免受各种安全威胁,如身份验证、授权、数据机密性和完整性、代码完整性、网络安全等。Java Security 体系结构主要由以下组件组成:安全提供者(Security Provider):Java 中的安全提供者是一种实现了特定安全服务的软件模块,如消息摘要、数字签名、加密和密钥管理等。Java 安全提供者必须遵循和。
2023-08-07 02:15:11 1322
原创 StAX的两种处理模式
这两个 API 都能够解析任何类型的 XML 文档,但Cursor API 比迭代器 API 更节省内存。因此,如果您的应用程序需要更好的性能,请考虑使用基于游标的 API。
2023-08-04 12:51:11 152
原创 StAX解析器
StAX(Streaming API for XML)是一种用于解析和生成XML文档的Java编程语言API。与传统的DOM(Document Object Model)和SAX(Simple API for XML)解析器不同,StAX提供了一种流式处理XML文档的方式。它允许开发人员以类似于流的方式逐个处理XML文档的元素,而不需要将整个文档加载到内存中。StAX解析器有两种主要的处理模式:事件迭代模式(Event Iterator Mode)和游标模式(Cursor Mode)。
2023-08-04 12:27:58 150
原创 SAX解析器
SAX(Simple API for XML)解析器是一种用于解析XML文档的解析器。它是一种基于事件驱动的解析技术,逐行扫描XML文档,并在遇到不同的XML元素(例如标签、属性、文本内容等)时触发相应的事件。SAX解析器不会将整个XML文档加载到内存中,而是在解析的过程中根据需要生成事件并进行处理,因此适用于处理大型XML文档,尤其是当内存资源有限时。
2023-08-04 11:25:14 159
原创 DOM解析器
DocumentBuilderFactory(接口):这是用于创建DOM解析器的工厂接口。通过调用方法,可以获取具体的实例,用于解析XML文档。DocumentBuilder(抽象类):这是DOM解析器的主要类。它提供了解析XML文档的方法,可以将XML文档解析为一个DOM树形结构,以便后续操作。可以通过的方法来获取实例。Document(接口):表示整个XML文档的DOM树形结构。它是树形结构的根节点,包含文档的所有元素、属性等信息。Element(接口):表示XML文档中的元素节点(标签)。
2023-07-21 04:52:04 357
原创 XML加密和数字签名
XMLCipher:XMLCipher 类是 javax.xml.crypto.dsig.XMLSignature 包中的主要类,用于执行 XML 加密和解密操作。它提供了加密和解密 XML 数据的功能。EncryptedData:EncryptedData 类用于表示加密的 XML 数据。它包含加密数据和加密算法的信息。KeyInfo:KeyInfo 类用于表示与密钥相关的信息,如密钥的类型、密钥的值等。在 XML 加密中,它通常包含用于解密的密钥信息。
2023-07-19 11:02:18 880
原创 Java加密库和算法
本文只是对Java加密库和算法的简要介绍,如果您对某个特定的加密算法或使用方法有更深入的了解需求,建议参考Java 8的官方文档或专业书籍。Java Cryptography Architecture (JCA) 官方文档Java Cryptography Extension (JCE) 官方文档Bouncy Castle 官方网站。
2023-07-15 14:39:35 656
原创 XML Binding
包是 Java 提供的用于 XML 数据绑定的标准 API。Marshaller总的来说,包提供了一套用于在 Java 程序和 XML 数据之间进行转换和交互的标准 API。它的主要技术点包括 XML 绑定、注解、上下文管理、数据类型转换和验证。使用这些技术点,可以方便地处理 XML 数据,并与 Java 对象进行无缝的集成。
2023-07-14 11:32:51 930
原创 Collectors
Collectors它是个工具类,提供了很多静态方法来返回Collector。通常作为Stream.collect()方法的入参,来实现更多的功能。API分类求平均值static <T>Collector<T,?,Double> averagingDouble(ToDoubleFunction<? super T>mapper) Returns aCollectorthat produces the arithmetic mean of...
2022-04-09 16:35:45 518 1
原创 Java8Stream流操作
熟悉了java.util.function下的各种函数式接口后,我们就可以学习下Stream流操作,它使用了各种函数式接口,下面我们来熟悉下它的API。Stream的获取static <T>Stream<T> of(T...values) Returns a sequential ordered stream whose elements are the specified values. static <T>Stream<...
2022-04-09 16:18:01 366
原创 Java8函数式接口
这个包下定义了许多函数式接口(这类接口只定义了唯一的抽象方法,并且这类接口使用了@FunctionalInterface进行注解),大致分为了以下四类:Function: 接收参数,并返回结果,主要方法 R apply(T t) Consumer: 接收参数,无返回结果, 主要方法为 void accept(T t) Supplier: 不接收参数,但返回结构,主要方法为 T get() Predicate: 接收参数,返回boolean值,主要方法为 boolean test(T t)再细
2022-04-07 16:44:26 606
原创 ResourceBundle
ResourceBundle这个类主要用来解决国际化和本地化问题。国际化和本地化可不是两个概念,两者都是一起出现的。可以说,国际化的目的就是为了实现本地化。比如对于“取消”,中文中我们使用“取消”来表示,而英文中我们使用“cancel”。若我们的程序是面向国际的(这也是软件发展的一个趋势),那么使用的人群必然是多语言环境的,实现国际化就非常有必要。而ResourceBundle可以帮助我们轻松完成这个任务:当程序需要一个特定于语言环境的资源时(如 String),程序可以从适合当前用户语言环境的资源包
2022-04-06 14:50:18 549
原创 Optional
程序中对"空",如空数组、空集合的体现形式可能是null或emplityList。如果是null,在使用时就需要我们进行null判断,防止抛空指针异常。常用的就是if else判断,但是如果存在多个if else 且它们之间存在着嵌套关系,代码写起来就复杂。这时候就可以使用Optonal的链式编程来解决。api介绍Modifier and Type Method and Description static <T> Optional<T> empt
2022-04-05 22:30:37 196
原创 Spliterator
用于遍历和分割源元素的对象。方法介绍tryAdvance// 如果存在元素,则执行Consumer并返回true并移至下一个元素。 如果没有元素返回false private static void tryAdvance() { List<String> list = new ArrayList<>(Arrays.asList("a", "b", "c")); Spliterator<String> stringSpliterator = list
2022-04-05 02:21:32 499
原创 Map接口Default方法
ComputeIfPresentimport java.util.HashMap;import java.util.Map;import java.util.Objects;import java.util.function.BiFunction;public class MapComputeIfPresentTest { public static void main(String[] args) { mappdingFunctionThrowException()
2022-04-04 15:04:48 774
原创 Comparator
package com.easypoi.stu.oneDay.collection;import java.util.Arrays;import java.util.Collections;import java.util.Comparator;import java.util.List;public class ComparatorTest { static Student s1 = new Student("Ram", 18); static Student s2 = n.
2022-04-01 18:38:45 176
原创 java8日期操作
public class DateTimeApiTest { public static void main(String[] args) throws InterruptedException { } private static void temporalAdjuster_AdjustInto() { LocalDateTime localDateTime = LocalDateTime.now(); // 下个月的第一天 .
2022-04-01 16:47:14 581
原创 Java8日期时间API
java.time.temporalTemporalAccessor框架级接口,定义对时间对象的只读访问,例如日期、时间、偏移量或它们的组合。default int get(TemporalField field)long getLong(TemporalField field)boolean isSupported(TemporalField field)default <R> R query(TemporalQuery<R> query)d..
2022-03-17 21:54:11 1635
原创 开发中遇到的问题
1. JPA事务问题Executing an update/delete query解决方案因为jpa要求,’没有事务支持,不能执行更新和删除操作’。所以反过来讲,就是在Service层或者Repository层上必须加@Transactional,来代表这是一个事务级别的操作,增删改查除了查都是事务级别的,就当这是一个规范也是ok的。2. IDEA build compiler.xml 、workspace.xml 报 前言中不允许有内容Error:Failed to load pro
2021-05-19 09:45:18 312
原创 POI导出快速入门案例
Apache POI Excel1. 案例package com.xy.poi.test.poitest.controller;import org.apache.poi.hssf.usermodel.*;import org.apache.poi.ss.usermodel.BorderStyle;import org.apache.poi.ss.usermodel.HorizontalAlignment;import org.apache.poi.ss.usermodel.Verti
2021-04-12 17:40:37 281
转载 简述 HTTP 请求与跨域资源共享 CORS
原文地址:https://juejin.cn/post/6927191095470194695简述 HTTP 请求与跨域资源共享 CORS URL 简介 以下示例 URL 由 4 部分组成: 服务类型(Scheme) 指明将被使用的协议(Protocol)。协议指定数据如何传输以及如何处理请求。当你查看协议时,你就能很好地理解这个 URL 的用途。(例如是带有 SMTP、POP3、IMAP 的电子邮件协议,还是获取和管理 git 仓库的 SSH 请求,或者是针对 Web 的 HTTP.
2021-04-09 15:36:37 222
原创 completableFeture常用方法
completableFeture教程Future 是Java 5添加的类,用来描述一个异步计算的结果。前文中,我们领略了 Future 的便利,但它还是存在诸多不足,比如: Future 对于结果的获取很不方便,只能通过阻塞或者轮询的方式得到任务的结果。阻塞的方式显然是效率低下的,轮询的方式又十分耗费CPU资源,而且也不能保证实时得到计算结果。 Future难以解决线程执行结果之间的依赖关系,比如一个线程等待另一个线程执行结束再执行,以及两个线程执行结果的合并处理等。 Java8
2021-04-09 00:45:21 509
原创 mysql8忘记密码
第一步,关掉系统服务net stop mysql第二步,创建一个文本文件,内含一条密码修改命令ALTER USER 'root'@'localhost' IDENTIFIED BY '';第三步:命令行方式启动服务器,指定启动时执行上述的密码修改命令文件mysqld --init-file=d:mysqlc.txt --console第四步:mysql -u root 登录...
2020-03-15 18:52:08 99
原创 Caused by: java.lang.IllegalStateException: KeeperErrorCode = ConnectionLoss
<!-- 配置注册中心 --> <dubbo:registry address="192.168.221.200:2181" protocol="zookeeper" timeout="30000"></dubbo:registry>之前忘记加 2181端口号,加上就好了...
2019-08-03 11:31:46 2155
转载 CXF 异常 Caused by: org.apache.cxf.binding.soap.SoapFault: Unexpected wrapper elem
异常信息如下:Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: Unexpected wrapper element {http://client.webwervice.common.navidog.cn/}getListPnameByuid found. Expected {http://cxfwebserv...
2019-07-26 23:36:23 4331
转载 CXF搭建: No binding operation info while invoking unknown method with params unknown.
https://blog.csdn.net/qq_34971078/article/details/79383925
2019-07-26 23:13:32 3930
原创 java.sql.SQLException: Access denied for user 'root'@'117.136.53.169' (using password: YES)
配置文件里配置了自己的数据库链接地址,jdbc:mysql://118.25.65.168:3306/orderdb?useUnicode=true&characterEncoding=UTF-8&useSSL=true链接的确实117.136.53.169地址,很郁闷。后来发现是密码写错了...
2019-07-19 11:58:13 696 1
转载 事务的隔离级别演示-避免脏读,演示不可重复读发生
开启两个窗口A,B设置A窗口的隔离级别为read committed;SET SESSION TRANSACTION ISOLATION LEVEL read committed;分别在两个窗口中开启事务:start transaction;在B窗口中完成转账update account set money = money - 1000 where name= '小张';upd...
2019-07-17 11:51:43 140
转载 TCP的几个状态 (SYN, FIN, ACK, PSH, RST, URG)
在TCP层,有个FLAGS字段,这个字段有以下几个标识:SYN, FIN, ACK, PSH, RST, URG.其中,对于我们日常的分析有用的就是前面的五个字段。它们的含义是:SYN表示建立连接,FIN表示关闭连接,ACK表示响应,PSH表示有 DATA数据传输,RST表示连接重置。其中,ACK是可能与SYN,FIN等同时使用的,比如SYN和ACK可能同时为1,它...
2019-07-04 16:11:00 113
转载 Tomcat实现Session对象的持久化
要完成session持久化,存放在session里的对象必须要实现java.io.Serializable接口。Session的持久化是由Session Manager来管理的。Tomcat提供了两个实现类:org.apache.catalina.session.StandardManager (默认)org.apache.catalina.session.Persistent...
2019-07-04 11:00:02 834
原创 Tomcat访问jsp时的流程
浏览器向服务器发请求,不管访问的是什么资源,其实都是在访问Servlet,所以当访问一个jsp页面时,其实也是在访问一个Servlet,服务器在执行jsp的时候,首先把jsp翻译成一个Servlet,所以我们访问jsp时,其实不是在访问jsp,而是在访问jsp翻译过后的那个ServletHttpJspBase类是继承HttpServlet的,所以HttpJspBase类是一个Servlet,而...
2019-07-03 17:52:29 1133
转载 Http请求与响应常用消息头详解
HTTP请求中的常用消息头 accept:浏览器通过这个头告诉服务器,它所支持的数据类型 Accept-Charset: 浏览器通过这个头告诉服务器,它支持哪种字符集 Accept-Encoding:浏览器通过这个头告诉服务器,支持的压缩格式 Accept-Language:浏览器通过这个头告诉服务器,它的语言环境 Host:浏览器通过这个头告诉服务器,想访问哪台主机 I...
2019-07-03 16:08:46 733
转载 HTTP请求头、响应头参数说明
Requests Header | Http Header Header 解释 示例 Accept 指定客户端能够接收的内容类型 Accept: text/plain, text/html Accept-Charset 浏览器可以接受的字符...
2019-07-02 16:19:28 554
转载 response.getWriter().write()与out.print()的区别
https://blog.csdn.net/javaloveiphone/article/details/8133772
2019-07-02 15:31:31 671
chebfun.zip
2023-08-24
Sample code for the Class Activation Mapping
2023-08-22
BeatTheBookie.zip
2023-08-22
awesome-low-light-image-enhancement.zip
2023-08-22
android-job用于运行后台延迟的作业
2023-08-21
Aegis Authenticator-是一款免费、安全、开源的安卓2FA应用程序
2023-08-21
google-services.zip
2023-08-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人