安全领域
性能与安全领域
简简单单OnlineZuozuo
未闻万里蓬莱,而窥先圣遗智。故,以此生筑梦,奔而逐之;以泰山之伟,攀而登之;以静雅素心,处世为人。------zuozuo著
展开
-
Docker - 搭建rabbitmq 集群
文章目录Docker - 搭建rabbitmq 集群1、首先,拉取rabbitmq 的镜像2、然后运行3个rabbitmq 的实例3、然后我们构建集群,并同步时区4、如何删除容器5、打开防火墙,或者端口控制器进行端口放行,检测运行状态6、通过nginx 做负载均衡Docker - 搭建rabbitmq 集群1、首先,拉取rabbitmq 的镜像我们以3.8.2 版本为例docker pu...原创 2020-02-27 16:19:42 · 931 阅读 · 0 评论 -
Springboot - 自动装配 - 自定义Spring-Boot @EnableXXX注解
文章目录Springboot - 自动装配 - 自定义Spring-Boot @EnableXXX注解1、从springboot 自带的@EnableXX注解出发2、内部主要实现原理 ```@Import```3、```@Import```的几种介入方式4、直接把某个配置类注册引入5、引入一个```ImportSelector```的实现类6、引入一个```ImportBeanDefinition...原创 2019-11-25 17:48:35 · 3759 阅读 · 0 评论 -
RabbitMq 配置分离 - 职责单一原则
文章目录RabbitMq 配置分离 - 职责单一原则1、创建交换机2、定义队列3、创建队列工厂向Spring 注册队列Bean4、指定路由规则RabbitMq 配置分离 - 职责单一原则基于单个交换机基于Topic 类型交换机1、创建交换机import org.springframework.amqp.core.TopicExchange;import org.springfra...原创 2018-12-20 12:44:43 · 4167 阅读 · 0 评论 -
浅谈 System.getProperty("line.separator")
文章目录浅谈 System.getProperty("line.separator")1、System.getProperty("line.separator") 是什么2、为什么要用System.getProperty("line.separator")代替 固定格式的换行符3、注意点浅谈 System.getProperty(“line.separator”)1、System.getPr...原创 2018-11-30 15:09:59 · 13456 阅读 · 0 评论 -
阿里巴巴Java开发手册一周年最终版
阿里巴巴Java开发手册一周年最终版摘要:阿里巴巴集团推出的《阿里巴巴Java开发手册》是阿里巴巴近万名开发同学集体智慧的结晶,以开发视角为中心,详细列举如何开发更加高效、更加容错、更加有协作性,力求知其然,更知其不然,结合正反例,让Java开发者能够提升协作效率、提高代码质量。 《阿里巴巴Java开发手册》系统性地从编程、数据库、异常日志、工程结构、安全、单元测试六大方面,...原创 2017-09-27 21:14:56 · 5815 阅读 · 0 评论 -
Debug模式的升级和扩展
Debug模式的升级和扩展#本模式是对我的上一篇文章的扩展和升级 JavaEE 中DEBUG模式的设计 扩展为支持多配置形式,原本的模式是把所有的配置都写在一个类里面的方式 当系统足够庞大,或者想要设置多个配置文件的时候,需要多次调用disableDebug()方法,并不方便 这个扩展仍然支持原来对单个配置文件的独立控制,并额外提供了全局控制,全局控制并不会影响独立控制#/** * 配置d原创 2017-08-11 15:39:20 · 15860 阅读 · 0 评论 -
JavaEE 中DEBUG模式的设计
JavaEE 中DEBUG模式的设计通过DEBUG模式我们可以快速的切换线上和线下的环境public class Final { // DEBUG模式,该字段必须放在前面,因为都是静态的,所以JVM会按照代码顺序加载 // DEBUG模式的设计依赖此字段,该字段放到后面会报错 private static boolean DEBUG; // 包访问权限的静态字段原创 2017-07-20 20:23:04 · 6932 阅读 · 0 评论 -
Java数据传输结构设计 - 接口数据封包
Java数据传输结构设计 - 接口数据封包#接口的数据结构* 接口应该有统一的数据格式* 接口应该具有良好的容错性* 接口应该具有安全性* 接口应该提供高可读性#接口数据返回的最外层结构{ "result": "8002", "msg": "Success", "data": "// 返回的数据", "sign": "// 数据签名"}接口的数据返回都封包在data字段下,resu原创 2017-07-13 21:15:25 · 6648 阅读 · 0 评论 -
LZ78 压缩算法的 Java 实现
文章目录LZ78 压缩算法的 Java 实现1、压缩算法的实现2、解压缩算法的实现3、测试和使用4、Python 版本的实现代码LZ78 压缩算法的 Java 实现1、压缩算法的实现通过多路搜索树提高检索速度package com.wretchant.lz78;import java.util.*;/** 多路英文单词查找树 */class Trie { private TrieNode root; public Trie() { root = ne原创 2021-05-05 02:41:11 · 961 阅读 · 0 评论 -
布隆过滤器 - Redis 布隆过滤器,Guava 布隆过滤器 BloomFilter - 代码实践
文章目录布隆过滤器 - Redis 布隆过滤器,Guava 布隆过滤器 BloomFilter - 代码实践1、通过guava 实现的布隆过滤器2、通过 redisson 实现的布隆过滤器3、通过Jedis 实现的布隆过滤器布隆过滤器 - Redis 布隆过滤器,Guava 布隆过滤器 BloomFilter - 代码实践1、通过guava 实现的布隆过滤器引入依赖 <...原创 2019-09-25 12:55:44 · 6103 阅读 · 2 评论 -
云服务器运维 - Linux 操作系统安全加固/防范黑客攻击
文章目录云服务器运维 - Linux 操作系统安全加固/防范黑客攻击1、帐号1.1 禁用或删除无用账号1.2 检查特殊账号1.3 添加口令策略1.4 限制用户su1.5 禁止root用户直接登录2、服务2.1 关闭不必要的服务2.2 SSH服务安全3、文件系统3.1 设置umask值3.2 设置登录超时4、日志4.1 syslogd日志4.2 记录所有用户的登录和操作日志云服务器运维 - Lin...原创 2019-09-01 18:51:45 · 4710 阅读 · 0 评论 -
敏感词过滤 - DFA算法[确定有穷自动机]的Java 实现
文章目录敏感词过滤 - DFA算法[确定有穷自动机]的Java 实现敏感词过滤 - DFA算法[确定有穷自动机]的Java 实现代码如下package utils;import com.google.common.collect.Maps;import java.util.*;/** * @author Created by 谭健 on 2019/7/23. 星期二. 14:...原创 2019-07-25 14:56:36 · 4624 阅读 · 0 评论 -
阿里云云盾证书(HTTPS 证书) 的免费续费操作流程
文章目录阿里云云盾证书(HTTPS 证书) 的免费续费操作流程1、登录到SSL 证书控制台2、点击到期新购3、点击新购4、选择免费证书购买5、补全证书信息阿里云云盾证书(HTTPS 证书) 的免费续费操作流程1、登录到SSL 证书控制台云盾证书服务管理控制台2、点击到期新购点击后出现如下页面3、点击新购点击后出现如下页面4、选择免费证书购买选择比较多,不同的组合点选下来会...原创 2018-09-25 10:23:00 · 12617 阅读 · 1 评论 -
Java - 微信JS-SDK wx.config 签名获取方式。
Java - 微信JS-SDK wx.config 签名获取方式。采用倒序的方式编写,一层一层往里走的形式。1.返回实例 @Data public static class Config{ private String appid; // 生成签名的时间戳 private String timestamp; ...原创 2018-05-30 09:26:56 · 7348 阅读 · 0 评论 -
Java 引用传递导致的恶意代码漏洞
Java 引用传递导致的恶意代码漏洞代码// 赋值操作只是传递引用,多建立一个引用的关联关系// private List<String> list; 只是创建一个指向null的引用,并没有创建一个空的List对象// list = s这个操作看似创建了一个对象,其实也只是把list的引用从null关联到s这个对象而已import com.google.co...原创 2018-04-17 16:23:59 · 4496 阅读 · 0 评论 -
算法 - 随机密码生成算法
算法 - 随机密码生成算法import java.util.Random;/** * Created by 谭健 on 2017/10/16. 11:13. * © All Rights Reserved. */public class Password { public Password() { } // 提供强度的构造方法 public Password(in原创 2017-10-16 13:07:41 · 11417 阅读 · 0 评论 -
十进制(10)与64进制互相转换算法
十进制(10)与64进制互相转换算法应用网址缩短,增加二维码清晰度有字数限制的微博,文章分享等数字的加解密import java.security.MessageDigest;import java.util.Stack;/** * Created By 谭健 2017年6月17日 22:17:04(TEL:15197447018) * * @version 2.0 * * *原创 2017-07-01 11:40:08 · 19071 阅读 · 3 评论 -
Mysql 在不同内存情况下性能优化参数设置
文章目录Mysql 在不同内存情况下性能优化参数设置1、可用内存为 1G 左右2、可用内存为 2G 左右3、可用内存为 3G 左右4、可用内存为 6G 左右5、可用内存为 16G 左右Mysql 在不同内存情况下性能优化参数设置1、可用内存为 1G 左右适用范围 1-2G 内存的服务器key_buffer_size128MB用于索引的缓冲区大小query_cache_size64MB.查询缓存,不开启请设为0tmp_table_size64MB,临时表缓存大小innodb原创 2021-04-14 11:25:18 · 761 阅读 · 0 评论 -
数据安全 - 如何保证数据在传输,存储,备份,恢复中的安全性
文章目录数据安全 - 如何保证数据在传输,存储,备份,恢复中的安全性数据安全 - 如何保证数据在传输,存储,备份,恢复中的安全性- 协议加密 - http -> https- 签名 - rsa 签名算法- 敏感数据加密 (全部数据加密可能存在性能问题) - 加密算法 - rsa - des - aes - 3des - 摘要算法 - md5 - sha1- 存储加原创 2021-03-26 11:14:47 · 1934 阅读 · 2 评论 -
使用 RSA 算法进行加解密,签名和验签
文章目录使用 RSA 算法进行加解密,签名和验签1、简介2、引入依赖3、生成公私钥对4、进行签名和验签5、进行加密和解密6、运行一下7、完整代码使用 RSA 算法进行加解密,签名和验签1、简介RSA是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。当时他们三人都在麻省理工学院工作。RSA就是他们三人姓氏开头字母拼在一起组成的是一种非对称加密算法2、引入依赖 <depe原创 2021-03-17 11:18:06 · 1060 阅读 · 0 评论 -
加密强随机数 SecureRandom
文章目录加密强随机数 SecureRandom1、SecureRandom 应用场景2、如何创建 SecureRandom 实例3、正确使用的示例加密强随机数 SecureRandom1、SecureRandom 应用场景第一个,由于当种子相同的时候,生成的随机数完全相同第二个,当随机数生成量较大时,Random存在性能问题所以,当需要大量随机数且对随机数安全性有要求的时候,使用Sec...原创 2018-12-11 13:39:43 · 6644 阅读 · 0 评论 -
Java类加载机制 - static关键字
Java加载机制 - static关键字static的一些特性static成员比类的任何一个实例创建时间都要早,所有没有实例也能访问它static方法不能使用this关键字static方法不能被覆盖代码public class Static { static int i = 2; static int s; static void method(int x) {原创 2017-07-16 17:34:46 · 4622 阅读 · 0 评论 -
布隆过滤器 - Redis 布隆过滤器,Guava 布隆过滤器 BloomFilter
文章目录布隆过滤器 - Redis 布隆过滤器,Guava 布隆过滤器 BloomFilter1、布隆过滤器的起源,用途2、布隆过滤器的概念3、布隆过滤器的优缺点1、优点2、缺点4、应用场景5、布隆过滤器的工作原理6、布隆过滤器的设计布隆过滤器 - Redis 布隆过滤器,Guava 布隆过滤器 BloomFilter1、布隆过滤器的起源,用途布隆过滤器(Bloom Filter)是197...原创 2019-09-25 09:58:38 · 10665 阅读 · 5 评论 -
Spring 框架,Spring Data Commons 组件 远程代码执行漏洞
Spring 框架,Spring Data Commons 组件 远程代码执行漏洞2018年4月11日,阿里云云盾应急响应中心监测到Spring框架存在一系列漏洞。1.Spring 框架 5.0-5.0.4,4.3 - 4.3.15 和更老的不被支持的版本中存在远程代码执行漏洞允许应用通过Spring-Messaging模块搭建一个不落盘的STOMP消息中介,并在Websock...原创 2018-07-12 11:45:33 · 5786 阅读 · 0 评论 -
Quartz - 关于Quartz的一些问题以及解释
Quartz - 关于Quartz的一些问题以及解释1.Quartz 是干嘛用的Quartz是一个任务调度库,可以与几乎任何其他软件系统集成在一起,也可以与其他软件系统一起使用。任务调度程序是一个服务组件,负责在执行(或通知)其他软件组件时预定(预定)时间到达。Quartz非常灵活,并且包含多个可以单独使用或一起使用的使用范例,以实现您期望的行为,并使您能够以对您的项目最为“自然”...原创 2018-04-25 21:02:03 · 5359 阅读 · 0 评论 -
Java系统属性工具类
Java系统属性工具类// 一共大约540行代码// 共108个公开方法import utils.print.Print;import java.util.Properties;/** * @author Created by 谭健 on 2018/4/16 0016. 星期一. 15:36. * © All Rights Reserved. */public ...原创 2018-04-16 16:37:30 · 4290 阅读 · 0 评论 -
Java的初始化块
Java的初始化块1.类初始化块// 类初始化块只执行一次public class A { static { System.out.println("Hello World"); } public static void main(String[] args) { A a = new A(); A a...原创 2017-10-31 16:04:20 · 4380 阅读 · 0 评论 -
HashMap的getOrDefault()方法
HashMap的getOrDefault()方法 /** * Created by 谭健 2017/8/24. 21:42. * All Rights Reserved */ public static void main(String[] args) { HashMap<String, Object> hashMap...原创 2017-08-24 22:41:47 · 25935 阅读 · 8 评论 -
HashMap的putIfAbsent()方法
HashMap的putIfAbsent()方法 public static void main(String[] args) { HashMap<String, Object> hashMap = new HashMap<>(); Object obj = hashMap.putIfAbsent("A", null); ...原创 2017-08-24 22:22:32 · 12190 阅读 · 1 评论 -
一种比Math类库abs()方法性能更高的取绝对值的方法
一种比Math类库abs()方法性能更高的取绝对值的方法#Math.abs()的实现源码通过三目运算符判断a是否小于0来实现/** * Returns the absolute value of an {@code int} value. * If the argument is not negative, the argument is returned. * If原创 2017-08-13 14:07:50 · 7516 阅读 · 7 评论 -
System.out.println()标准输出方法性能影响一窥
System.out.println()标准输出方法性能影响一窥#以前在写功能性代码的时候就知道,代码功能性的强大往往意味着性能的丢失。那么非常好用支持任何格式输出到控制台的System.out.println()标准输出方法究竟是如何工作的呢?做一个简单的测试public class TestOut { private static long timeOut = System.curren原创 2017-07-16 16:46:21 · 13746 阅读 · 1 评论 -
关于Spring Boot 的 ApplicationRunner ,CommandLineRunner 的源码探究
关于Spring Boot 的 ApplicationRunner ,CommandLineRunner 的源码探究1.关于ApplicationRunner// 源码package org.springframework.boot;import org.springframework.core.Ordered;import org.springframework.core.a...原创 2018-07-27 11:48:07 · 4323 阅读 · 0 评论 -
RestTemplate 包含中文时乱码
目录RestTemplate 包含中文时乱码1、解决方法2、产生原因RestTemplate 包含中文时乱码1、解决方法@Beanpublic RestTemplate restTemplate() { RestTemplate restTemplate = new RestTemplate(); restTemplate.getMessageConverters().s...原创 2018-09-18 11:41:12 · 12911 阅读 · 0 评论 -
Spring - Bean 的初始化过程
文章目录Spring - Bean 的初始化过程1、创建一个Bean2、让该Bean 实现Spring 的一些钩子函数3、追踪bean 的初始化过程4、Spring 初始化 Bean 的源码Spring - Bean 的初始化过程1、创建一个Bean@Componentpublic class OnBean {}2、让该Bean 实现Spring 的一些钩子函数@Slf4j@...原创 2019-09-01 22:18:12 · 4594 阅读 · 0 评论 -
Spring BeanUtils的属性拷贝,注意点,从Apache切换过来存在的问题
文章目录Spring BeanUtils的属性拷贝,注意点,从Apache切换过来存在的问题1、Apache 的源码2、Spring 的源码3、Spring 的拷贝源码4、拷贝源码的核心源码 getWriteMethod()方法5、推荐的方案和注意点1、推荐使用Spring 的拷贝方案2、注意点Spring BeanUtils的属性拷贝,注意点,从Apache切换过来存在的问题1、Apach...原创 2019-03-05 13:06:56 · 5632 阅读 · 0 评论 -
缓存穿透,缓存击穿,缓存雪崩
文章目录缓存穿透,缓存击穿,缓存雪崩1、什么是缓存穿透2、如何解决缓存穿透方案一方案二3、什么是缓存击穿4、缓存击穿与缓存雪崩的区别5、如何解决缓存击穿方案一方案二方案三方案四6、什么是缓存雪崩7、如何避免缓存雪崩缓存穿透,缓存击穿,缓存雪崩1、什么是缓存穿透缓存穿透是指查询一个一定不存在的数据,一般情况下,首先查询缓存,如果缓存不存在,则去查询数据库,并把结果写入缓存,并且出于容错考虑...原创 2019-02-28 13:33:45 · 4404 阅读 · 0 评论 -
Springboot 使用轻量级的 undertow 容器替代重量级tomcat,支持HTTP2.0,性能更好,稳定性更好
文章目录Springboot 使用轻量级的 undertow 容器替代重量级tomcat,支持HTTP2.0,性能更好,稳定性更好1、什么是 undertow2、Springboot 直接上手 - 配置maven依赖3、Springboot 直接上手 - 编写配置文件4、undertow 全配置5、性能分析与测试Springboot 使用轻量级的 undertow 容器替代重量级tomcat,支...原创 2019-01-09 22:32:07 · 8535 阅读 · 0 评论 -
Java JVM 内存解析
文章目录Java JVM 内存解析1、最大可用内存 -Xmx2、虚拟机中可用内存量3、虚拟机总内存量4、虚拟机当前实际可用内存5、Log 方法Java JVM 内存解析1、最大可用内存 -Xmx设置虚拟机最大可以使用的内存总量 // JDK 源码 /** * Returns the maximum amount of memory that the...原创 2018-11-28 15:30:07 · 4164 阅读 · 0 评论 -
Springboot 2.0.x 简单集成Rabbit MQ 并实现消息发送和消费【Windows 环境下】
文章目录Springboot 2.0.x 简单集成Rabbit MQ 并实现消息发送和消费【Windows 环境下】1、rabbit mq 基础支持,安装 Erlang 环境2、安装 rabbit mq3、激活 rabbit mq 的管理插件4、访问管理器页面5、新建远程访问账户6、配置Springboot 依赖7、注册队列8、发送消息9、管理器监控10、如何清理掉测试发送的消息11、消费消息...原创 2018-11-30 15:59:49 · 4724 阅读 · 0 评论 -
Springboot 2.0.x Redis缓存Key生成器,自定义生成器
文章目录Springboot 2.0.x Redis缓存Key生成器,自定义生成器1、默认的Key生成策略2、重写生成器3、注册自定义生成器4、应用5、在Redis 中Key的显示Springboot 2.0.x Redis缓存Key生成器,自定义生成器1、默认的Key生成策略首先看看生成器接口的源码package org.springframework.cache.intercept...原创 2018-11-22 10:58:45 · 10599 阅读 · 2 评论