2019年2月18日

第十章 五种对称加密算法总结

摘要: 10.1、DES 已破解,不再安全,基本没有企业在用了 是对称加密算法的基石,具有学习价值 密钥长度56(JDK)、56/64(BC) 10.2、DESede(三重DES) 早于AES出现来替代DES 计算密钥时间太长、加密效率不高,所以也基本上不用 密钥长度112/168(JDK)、128/192 阅读全文

posted @ 2019-02-18 17:32 我是司 阅读(236) 评论(0) 推荐(0)

第九章 对称加密算法--IDEA

摘要: 9.1、IDEA 特点: 先于AES出来取代DES 安全性极高 常用于电子邮件加密算法 9.2、实现方式 Bouncy Castle(BC,工作模式只有ECB,密钥长度为128位) 9.2.1、基于BC实现的IDEA算法 package com.util.idea; import java.io.U 阅读全文

posted @ 2019-02-18 17:31 我是司 阅读(586) 评论(0) 推荐(0)

第八章 对称加密算法--AES

摘要: 8.1、AES 特点: 密钥建立时间短、灵敏性好、内存需求低(不管怎样,反正就是好) 最常用的对称加密算法 8.2、实现方式 JDK(密钥长度有128,192,256三种选法,提供PKCS5Padding的填充模式) Bouncy Castle(密钥长度有128,192,256三种选法,提供PKCS 阅读全文

posted @ 2019-02-18 17:29 我是司 阅读(202) 评论(0) 推荐(0)

第七章 对称加密算法--DES

摘要: 7.1、对称加密算法 特点: 加密与解密使用同一个密钥 是使用最广的算法 常见对称加密算法: DES(已被破解,但是是其他对称算法的基石) DESede(处理速度慢、加密耗时,也不常用) AES(DES的替代者,最常用) IDEA(目前常用的电子邮件加密算法) PBE(对已知对称加密进行包装) 7. 阅读全文

posted @ 2019-02-18 17:25 我是司 阅读(223) 评论(0) 推荐(0)

第六章 三大消息摘要算法总结

摘要: 6.1、MD5 推荐使用CC(即Commons Codec)实现 虽然已被破解,但是仍旧广泛用于注册登录模块与验证下载的文件的完整性 可以自己写一个注册登录模块;自己下载一个MD5加密的文件,然后通过之前编写的工具类(或者使用CC的方法)进行验证(具体的例子在《Java加密与解密艺术(第二版)中有》 阅读全文

posted @ 2019-02-18 17:20 我是司 阅读(141) 评论(0) 推荐(0)

第五章 消息摘要算法--MAC

摘要: 5.1、mac(又称为Hmac) 原理:在md与sha系列算法的基础上加入了密钥,是三大常用的消息摘要算法中最安全的一个。 常用的mac算法: HmacMD5 HmacSHA1 HmacSHA256 5.2、实现方式 JDK(缺少二进制字节数组转十六进制的工具,可借助CC或BC的工具类完成) Com 阅读全文

posted @ 2019-02-18 17:18 我是司 阅读(432) 评论(0) 推荐(0)

第四章 消息摘要算法--SHA

摘要: 4.1、SHA 原理:消息摘要长度(可以定量为加密后的字符串的长度)越长,安全性越高 MD5:128位二进制摘要(32位16进制字符串)(已破解) SHA1:160位二进制摘要(40位16进制字符串)(已破解) SHA256:256位二进制摘要(64位16进制字符串)(常用,在spring secu 阅读全文

posted @ 2019-02-18 17:12 我是司 阅读(348) 评论(0) 推荐(0)

第三章 消息摘要算法--MD5

摘要: 3.1、消息摘要算法:防止消息在传递过程中被篡改。 原理:任何消息经过消息摘要算法后,都会产生唯一的散列值(即“数据指纹”)(同一段消息无论经过多少次相同的消息摘要算法加密,结果都相同),所以如果消息在传送过程中被修改,那么算出来的数据指纹也与原本的消息算出来的不同了,如果没有被修改,则数据指纹是相 阅读全文

posted @ 2019-02-18 17:09 我是司 阅读(229) 评论(0) 推荐(0)

第二章 Base64与URLBase64

摘要: 2.1、算法基本规则: 加密的算法公开 加密的密钥不公开 Base64算法公开、密钥也公开的特性不符合基本算法规则,所以很容易被破解,所以一般不用于企业级的加密操作。 注意:具体的算法与密钥(对于Base64来讲,是一张字符映射表)可在《Java加密与解密的艺术(第2版)》第5章“电子邮件传输算法- 阅读全文

posted @ 2019-02-18 17:06 我是司 阅读(4191) 评论(0) 推荐(0)

第一章 Java加解密简介

摘要: 1、加密算法: 移位、替代(古典加密) 对称加密:DES、AES 非对称加密:RSA 散列函数算法(单向加密):MD5、SHA、Mac 数字签名算法:RSA、DSA 其中,前三种主要完成数据的加解密; 散列函数类主要完成验证数据的完整性,防止消息在传递期间被篡改; 数字签名类:完成验证数据的完整性, 阅读全文

posted @ 2019-02-18 17:02 我是司 阅读(83) 评论(0) 推荐(0)

springMVC和struts2有什么不同?为什么要用springMVC或者struts2?让你实现一个MVC框架大概如何设计?

摘要: 【问题一:不同】 (1)框架机制 1、Struts2采用Filter(StrutsPrepareAndExecuteFilter)实现,SpringMVC(DispatcherServlet)则采用Servlet实现。2、Filter在容器启动之后即初始化;服务停止以后坠毁,晚于Servlet。Se 阅读全文

posted @ 2019-02-18 15:55 我是司 阅读(571) 评论(0) 推荐(0)

Spring IOC 三种注入方式(构造器,setter,接口)

摘要: Spring的依赖注入有三种方式: 1,构造器注入 2,setter注入 3,接口注入 下面我给大家介绍一下这三种注入 1.构造器注入 构造器注入主要是依赖于构造方法去实现,构造方法可以是有参也可以是无参,我们在平常都是通过类的构造方法来创建类对象,以及给他赋值,同样Spring 也可以采用反射的方 阅读全文

posted @ 2019-02-18 15:44 我是司 阅读(1891) 评论(0) 推荐(0)

Redis和Memcached的异同

摘要: Memcached Redis 2.Redis作为分布式缓存可能会存在哪些问题,怎么解决? 缓存穿透预防及优化:缓存穿透是指查询一个根本不存在的数据,缓存层和存储层都不会命中;缓存穿透将导致不存在的数据每次请求都要到存储层去查询,失去了缓存保护后端存储的意义;解决方法:缓存空对象和布隆过滤器拦截; 阅读全文

posted @ 2019-02-18 15:09 我是司 阅读(282) 评论(0) 推荐(0)

Linux关机和重启命令

摘要: shutdown命令 在早期的 Linux 系统中,应该尽量使用 shutdown 命令来进行关机和重启。因为在那时的 Linux 中,只有 shutdown 命令在关机或重启之前会正确地中止进程及服务,所以我们一直认为 shutdown 才是最安全的关机与重启命令。而在现在的系统中,一些其他的命令 阅读全文

posted @ 2019-02-18 14:59 我是司 阅读(1853) 评论(0) 推荐(0)

Linux下JDK环境变量配置

摘要: JDK官方下载地址: 我的下载路径: 解压: 配置环境变量: 在profile的最后加入/修改: CLASSPATH中的tools.jar主要包含一些工具,如javac(将.java编译为.class)、javadoc(根据java源文件以html格式生成API文档)、javap(反汇编.class 阅读全文

posted @ 2019-02-18 14:19 我是司 阅读(6092) 评论(0) 推荐(0)

hibernate的load和get有什么作用

摘要: ① load方法认为该数据在数据库中一定存在,可以放心的使用代理来延迟加载,如果在使用过程中发现了问题,只能抛异常(ObjectNotFoundException)load方法加载实体对象的时候,根据映射文件上类级别的lazy属性的配置(默认为true) 为true,则首先在session中查找,如 阅读全文

posted @ 2019-02-18 13:47 我是司 阅读(274) 评论(0) 推荐(0)

【前端】

摘要: 1.Web缓存的作用以及实现方式 作用:1.减少网络宽带消耗 2.降低服务器压力 3.减少网络延迟,加快打开网页速度 实现方式: 2.AJAX:核心内置对象 核心对象是XMLHttpRequest,它可以提供不重新加载页面的情况下更新网页,在页面加载后在客户端向服务器请求数据,在页面加载后在服务器端 阅读全文

posted @ 2019-02-18 13:46 我是司 阅读(229) 评论(0) 推荐(0)

如何用java代码写一个堆栈

摘要: public class Stack { int[] data; int maxSize; int top; public Stack(int maxSize) { this.maxSize = maxSize; data = new int[maxSize]; top = -1; } /** * 依次加入数据 * @param data... 阅读全文

posted @ 2019-02-18 13:44 我是司 阅读(1965) 评论(0) 推荐(0)

如何设计高性能、高并发、高可用的系统。

摘要: 系统架构三个利器:RPC服务组件、消息中间件(交互异步化、流量削峰)、配置管理(灰度发布、降级); 无状态:接口层最重要的就是无状态,将有状态的数据剥离到数据库或缓存中; 如何改善延时:找关键路径(“28原则”)、空间换时间,如各级缓存;时间换空间,如传输压缩,解决网络传输的瓶颈;多核并行,减少锁竞 阅读全文

posted @ 2019-02-18 13:36 我是司 阅读(2880) 评论(0) 推荐(0)

10 个深恶痛绝的 Java 异常

摘要: 1、NullPointerException 空指针异常,操作一个 null 对象的方法或属性时会抛出这个异常。具体看这篇文章:Java 避免空指针的 5 个案例。 2、OutOfMemoryError 内存异常异常,这不是程序能控制的,是指要分配的对象的内存超出了当前最大的堆内存,需要调整堆内存大 阅读全文

posted @ 2019-02-18 11:50 我是司 阅读(469) 评论(0) 推荐(0)

导航