廖雪峰Java10加密与安全-4加密算法-1对称加密算法
摘要:1.对称加密算法 加密和解密使用同一个密钥,例如WinRAR。 WinRAR在对文件进行打包的时候,可以设置一个密码,在解压的时候需要使用同样的密码才能正确的解压。 加密:encrypt(key,message) s 解密:decrypt(key,s) message |算法|密钥长度(决定加密的强
阅读全文
posted @
2019-05-10 22:19
singleSpace
阅读(471)
推荐(0)
廖雪峰Java10加密与安全-3摘要算法-4BouncyCastle
摘要:1.BouncyCastle: 第三方提供的一组加密/哈希算法 提供JDK没有提供的算法 RipeMD160哈希算法 "官方网站" 2.如何使用第三方提供的算法 2.1 添加第三方jar至classpath "jar包下载地址" IDEA:project structure modules depe
阅读全文
posted @
2019-05-10 18:38
singleSpace
阅读(522)
推荐(0)
廖雪峰Java10加密与安全-3摘要算法-3SHA-1算法
摘要:1.SHA 1算法 SHA 1算法也是一种哈希算法。 输出160 bits/20bytes 由美国国家安全局开发 ~~SHA 0~~/SHA 1/SHA 256/SHA 512 ~~SHA 0~~有问题,已经作废了 |算法|输出长度:bits|输出长度:bytes | | | |SHA 1|160
阅读全文
posted @
2019-05-08 22:09
singleSpace
阅读(556)
推荐(0)
廖雪峰Java10加密与安全-3摘要算法-1MD5
摘要:1.摘要算法 1.1 摘要算法(哈希算法/Hash/数字指纹): 计算任意长度数据的摘要(固定长度) 相同的输入数据始终得到相同的输出 不同的输入尽量得到不同的输出 1.2 摘要算法目的: 验证数据和原始数据是否一致,被篡改 1.3.java的Object.hashCode()方法就是一个摘要算法:
阅读全文
posted @
2019-05-07 22:37
singleSpace
阅读(278)
推荐(0)
廖雪峰Java10加密与安全-2加密算法-2Base64编码
摘要:1.Base64编码 Base64一种把二进制数据用文本表示的编码算法。例如 中有3个字节{\xe4, \xb8, \xad},一共是24位,每6位分组,变成4个字节{39, 0b, 22, 2d},最终结果位5Lit。 如果长度不是3的整数倍: 末尾补0x00或0x00 0x00 编码后加=表示补
阅读全文
posted @
2019-05-07 21:13
singleSpace
阅读(306)
推荐(0)
廖雪峰Java10加密与安全-2加密算法-1URL编码
摘要:1.URL编码 URL编码是浏览器发送数据给服务器时使用的编码。 如通过百度搜索美女: 编码前:https://www.baidu.com/s?wd=美女 编码后:https://www.baidu.com/s?wd=%E7%BE%8E%E5%A5%B3 URL编码规则: A Z, a z, 0 9
阅读全文
posted @
2019-05-07 18:55
singleSpace
阅读(257)
推荐(0)
廖雪峰Java10加密与安全-1数据安全-1加密与安全概念
摘要:数据安全 防窃听 防篡改 防伪造 古代加密方式: 移位密码:HELLO = IFMMP 替代密码:HELLO= p12,5,3 现代加密方式: 建立在严格的数学理论基础上 密码学逐渐发展成一门科学 总结: 设计一个安全的加密算法非常困难 验证一个加密算法是否安全更加困难 当前被认为安全的加密算法仅仅
阅读全文
posted @
2019-05-07 09:55
singleSpace
阅读(227)
推荐(0)
廖雪峰Java9正则表达式-2正则表达式进阶-6搜索和替换
摘要:1.使用正则表达式分割字符串: 2.使用正则表达式查找字符串 3.使用正则表达式替换字符串 4.总结 使用正则表达式可以: 分割字符串:String .split() 搜索字串:Matcher.find() 替换字符串:String.replaceAll()
阅读全文
posted @
2019-05-06 22:41
singleSpace
阅读(635)
推荐(0)
廖雪峰Java9正则表达式-2正则表达式进阶-5非贪婪匹配
摘要:1.贪婪匹配 问题:给定一个字符串表示的数字,判断该数字末尾0的个数? "123000": 3个0 "10100": 2个0 "1001": 0个0 先使用"^(\d+)(0 )$"匹配这三个字符串 结果:0并未匹配到,group1将整个字符串完全匹配 原因:正则表达式默认使用贪婪匹配,尽可能多的向
阅读全文
posted @
2019-05-06 21:39
singleSpace
阅读(1117)
推荐(0)
廖雪峰Java9正则表达式-2正则表达式进阶-3分组匹配
摘要:1.使用括号可以提取字符串 不加括号匹配电话号码 匹配成功后,如何提取想要的字符串? 使用(...)可以分组:"^(\\d{3,4})\\ (\\d{6,8})$" 2.String.matcher vs Pattern.matcher 前面用到的正则表达式是使用String.matches(),而
阅读全文
posted @
2019-04-23 08:49
singleSpace
阅读(1433)
推荐(0)
廖雪峰Java9正则表达式-1正则表达式入门-2正则表达式匹配规则
摘要:正则表达式的匹配规则: 从左到右按规则匹配 |匹配规则及示例|可以匹配 |不能匹配 | | | | | |"abc"| "abc"| 不能匹配:"ab", "Abc", "abcd" |特殊字符需要转义,如"a\&c",注意Java的字符串需要再加一个转义符| "a&c" | "ab", "abc"
阅读全文
posted @
2019-04-22 05:48
singleSpace
阅读(604)
推荐(0)
廖雪峰Java9正则表达式-1正则表达式入门-1正则表达式简介
摘要:1.使用代码来判断字符串 场景: 判断字符串是否是有效的电话号码:"010 12345678", "123ABC456" 判断字符串是否是有效的电子邮箱地址:"test@example.com", "test example" 判断字符串是否是有效的时间:"12:34", "99:99" 通过程序判
阅读全文
posted @
2019-04-18 11:08
singleSpace
阅读(349)
推荐(0)
廖雪峰Java8JUnit单元测试-2使用JUnit-4超时测试
摘要:1.超时测试 可以为JUnit的单个测试设置超时: 超时设置1秒:@Test(timeout=1000),单位为毫秒 2.示例 Leibniz定理:PI/4= 1 1/3 + 1/5 1/7 +1/9...即 PI = 4 4/3 + 4/5 4/7... Calculator.java Calcu
阅读全文
posted @
2019-04-17 15:09
singleSpace
阅读(493)
推荐(0)
廖雪峰Java8JUnit单元测试-2使用JUnit-3参数化测试
摘要:参数化测试: 可以把测试数据组织起来 用不同的测试数据调用相同的测试方法
阅读全文
posted @
2019-04-17 12:51
singleSpace
阅读(392)
推荐(0)
廖雪峰Java8JUnit单元测试-2使用JUnit-2异常测试
摘要:1.异常测试 对可能抛出的异常进行测试: 异常本身是方法签名的一部分: public static int parseInt(String s) throws NumberFormatException 测试错误的输入是否导致特定的异常: Integer.parseInt(null) Integer
阅读全文
posted @
2019-04-17 10:21
singleSpace
阅读(644)
推荐(0)
廖雪峰Java8JUnit单元测试-2使用JUnit-1使用Before和After
摘要:1. @Before和@After 同一个单元测试内的多个测试方法: 测试前都需要初始化某些对象 测试后可能需要清理资源fileInputStream.close() JUnit可以使用@Before和@After: 在@Before方法中初始化测试资源 在@After方法中释放测试资源 @Befo
阅读全文
posted @
2019-04-16 22:29
singleSpace
阅读(2526)
推荐(0)
廖雪峰Java8JUnit单元测试-1JUnit简介-1JUnit测试
摘要:测试驱动开发(Test Driver Development) 1.使用main()方法测试的缺点: 只能有1个main()方法,不能把测试代码分离 没有打印出测试结果和期望结果,例如expected:3628800,but actual:362880 因此,需要一种测试框架,帮助我们编写测试 3.
阅读全文
posted @
2019-04-16 09:36
singleSpace
阅读(803)
推荐(0)
廖雪峰Java7处理日期和时间-4最佳实践-最佳实践
摘要:jdk提供了2套新旧的API来处理日期和时间。 java.util Date Calendar java.time(JDK =1.8) Localdate LocalTime LocalDateTime ZonedDateTime Instant java.sql时间 java.util.Date表
阅读全文
posted @
2019-04-12 22:05
singleSpace
阅读(658)
推荐(0)
廖雪峰Java7处理日期和时间-3java.time的API-2ZonedDateTime
摘要:ZonedDatetime = LocalDateTime + ZoneId ZonedDateTime:带时区的日期和时间 ZoneId:新的API定义的时区对象(取代几句的java.util.TimeZone) Instant:时刻对象(epoch seconds) 1.ZonedDateTim
阅读全文
posted @
2019-04-11 20:55
singleSpace
阅读(857)
推荐(0)
廖雪峰Java7处理日期和时间-3java.time的API-1LocalDateTime
摘要:1.java.time提供了新的日期和时间API: LocalDate/LocalTime/LocalDateTime ZoneDateTime/ZoneId Instant Formatter 新API特点: 严格区分日期、时间 所有的类均为不变类(类似String) 修复了Month范围1-12
阅读全文
posted @
2019-04-11 19:10
singleSpace
阅读(347)
推荐(0)