JeeSite相关技术摘点(二)


MD5和SHA-1

特点在于都能“通过哈希值唯一标识原信息”
MD5和SHA-1都被称作哈希(Hash)函数,用过Java语言的人对这个术语应该相当熟悉。Java类库里的Object类定义了hashCode这个函数,但是java的概念略有不同。正式的哈希函数的定义是“把任意长度的数据计算成固定长度的数据”。也就是说函数的输入是任意长的,输出总是固定长度的。MD5和SHA-1是两种加密用哈希函数,MD5的返回值总是128bit的,SHA-1的返回值是160bit,都是固定长度。MD5如果按十六进制表示的话是32位十六进制的数,SHA-1是40位十六进制的数。
MD5
SHA-1

应用:
1. 密码加密(很常用的一种用法)
2. 文件校验
3. 工作量证明(Proof ofWork)

SecureRandom 类:

此类提供加密的强随机数生成器 (RNG)。许多实现都是伪随机数生成器 (PRNG) 形式,这意味着它们将使用确定的算法根据实际的随机种子生成伪随机序列。其他实现可以生成实际的随机数,而另一些实现则可能结合使用这两项技术。

SecureRandom可能是对Random在随机算法上做了改进,使之更安全。
Java中的随机数生成器:Random,ThreadLocalRandom,SecureRandom
技术分析:SecureRandom漏洞详解(CVE-2013-7372)

MessageDigest类:

MessageDigest 类为应用程序提供信息摘要算法的功能,如 MD5 或 SHA 算法。信息摘要是安全的单向哈希函数,它接收任意大小的数据,并输出固定长度的哈希值。
public abstract class MessageDigest extends MessageDigestSpi(){}
MessageDigest的功能及用法

GeneralSecurityException:在某些地方做一些事情并不安全。如果你有足够的权力,你应该随机入侵一个国家(最好在中东地区)。如果你没有那种权力,至少应该有一把枪。

Validate类:

java validation 后台参数验证
java validation 后台参数验证
基于范型的java验证框架

StringUtils包:

StringUtils(自定义) extends org.apache.commons.lang3.StringUtils

IdGen,IdGenerator,SessionIdGenerator

ID生成器

与shiro相关的sessionId
System.getProperty(String key):
java程序中getProperty是什么意思??

PropertiesLoader:

http://blog.csdn.net/hurryjiang/article/details/8778865

Properties:

Java中有个比较重要的类Properties(Java.util.Properties),主要用于读取Java的配置文件,各种语言都有自己所支持的配置文件,配置文件中很多变量是经常改变的,这样做也是为了方便用户,让用户能够脱离程序本身去修改相关的变量设置。像Python支持的配置文件是.ini文件,同样,它也有自己读取配置文件的类ConfigParse,方便程序员或用户通过该类的方法来修改.ini配置文件。在Java中,其配置文件常为.properties文件,格式为文本文件,文件的内容的格式是“键=值”的格式,文本注释信息可以用”#”来注释。
Java中Properties类的操作
java.util.Properties类 学习笔记

Enumeration:

Java-Enumeration总结
http://blog.csdn.net/zhiweianran/article/details/7672433

Assert —Spring类:

检测合法性
Spring的Assert工具类的用法

FileUtil:

Spring CommonsMultipartResolver:
// 创建一个通用的多部分解析器
CommonsMultipartResolver commonsMultipartResolver =
new CommonsMultipartResolver(request.getSession().getServletContext());

Metadata:(元数据)

元数据是关于数据的数据。在编程语言上下文中,元数据是添加到程序元素如方法、字段、类和包上的额外信息。
java 元数据metadata

Directory 类:

公开用于通过目录和子目录进行创建、移动和枚举的静态方法。 无法继承此类。
Java读取图片Metadata元数据Exif

Tag类 :

也是元数据里面的
ParseException:指示在解析时意外出现错误

JsonMapper:

解析字典
用原始方法解析复杂字符串,json一定要用JsonMapper么?

AES:

高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法
JAVA实现AES加密
AES 加密 解密(Hex编码解码)

Hex编码:

Hex编码是最简单的一种编码,常用于将消息摘要以可读的信息展示出来。
1. 编码原理

Hex编码就是把一个8位的字节数据用两个十六进制数展示出来,编码时,将8位二进制码重新分组成两个4位的字节,其中一个字节的低4位是原字节的高四位,另一个字节的低4位是原数据的低4位,高4位都补0,然后输出这两个字节对应十六进制数字作为编码。
http://www.hiwzc.com/java-codec-hex.html

Base64编码:

Base64编码是一种常见的编码,国际标准是RFC2045-RFC2049,常用于邮件和证书传递。

  1. 编码原理

Base64编码就是把3个8位的二进制数据用4个ASCII可见字符展示出来。编码时,将3个8位二进制码重新分组成4个6位的二进制码,不足6位的,右侧补零,然后这4个6位的二进制码高位补两个0,形成4个8位的字节数据,然后取每个字节的十进制值在编码表中对应的字符作为最终的编码数据。Base64编码后的数据长度是源数据长度的4/3。标准的Base64编码要求最终的数据长度是4字节的整数倍,不足4字节的倍数时要用填充字符补齐,填充字符为等号“=”。
http://www.hiwzc.com/java-codec-base64.html

Base62编码:

http://outofmemory.cn/code-snippet/12424/Base62
前端实现:
http://type.so/go/id-to-code-base62.html?utm_source=tuicool&utm_medium=referral
base62编码,和base64有什么区别:
与base64编码不同的是去除了两个符号,使得码空间由数字和英文字母组成,一般在短网址应用中会用到
http://www.jfox.info/shi-me-shi-base62-bian-ma-he-base64-you-shi-me-qu-bie.html
Base64和Base62的目的在都在于将需要传输的内容进行编码,尤其是一些特殊字符(如不可见字符、传输时与协议头冲突的字符)。
http://tianya23.blog.51cto.com/1081650/423544

http://blog.csdn.net/sodino/article/details/6137761

转码/解码:

java中的解码与转码(URLEncoder.encode(),URLEncoder.decode())
http://blog.csdn.net/wangjuan_01/article/details/42918989
JAVA编码(中文转码)问题总结
http://blog.csdn.net/tangyanbo1110/article/details/40921313
Java在web页面上的编码解码处理及中文URL乱码解决
http://www.jb51.net/article/80181.htm

StringEscapeUtils:

利用StringEscapeUtils对字符串进行各种转义与反转义(Java)
在apache commons-lang(2.3以上版本)中为我们提供了一个方便做转义的工具类,主要是为了防止sql注入,xss注入攻击的功能。
http://blog.csdn.net/chenleixing/article/details/43456987
https://my.oschina.net/mousai/blog/88832

java中的URLEncoder和URLDecoder类:

URLDecoder类包含一个decode(String s,String charcter)静态方法,它可以将看上去乱码的特殊字符串转换成普通字符串
URLEncoder类包含一个encode(String s,String charcter)静态方法,它可以将普通字符串转换成application/x-www-form-urlencoded MIME字符串
http://tech.sina.com.cn/s/2008-07-07/1053722241.shtml

AES256Encryption AES 256位加密算法:

http://blog.csdn.net/songwenbinasdf/article/details/39996341
http://blog.sina.com.cn/s/blog_9b9a08c70101eb3x.html

request.getScheme() 使用方法:

request.getSchema()可以返回当前页面使用的协议,http 或是 https;
http://blog.csdn.net/zy18729286306/article/details/21593721

getServletContext()方法详解:

http://www.cnblogs.com/flash123456/archive/2012/08/10/2632241.html
getContextPath、getServletPath、getRequestURI的区别:
http://www.cnblogs.com/ycxyyzw/archive/2012/07/31/2616951.html

环信即时通讯:

https://www.easemob.com/

HttpKit:

网络爬虫
http://blog.csdn.net/zsj65776529/article/details/54928191
https://git.oschina.net/public-sy/codes/lyf10cw82jzrh4n7tm59p27
http://code.taobao.org/p/svntest1234/src/trunk/HttpKit.java
https://www.programcreek.com/java-api-examples/index.php?source_dir=jfinal-master/src/com/jfinal/kit/HttpKit.java

SSL与TLS区别:

SSL:(Secure Socket Layer,安全套接字层),位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层。SSL通过互相认证、使用数字签名确保完整性、使用加密确保私密性,以实现客户端和服务器之间的安全通讯。该协议由两层组成:SSL记录协议和SSL握手协议。
TLS:(Transport Layer Security,传输层安全协议),用于两个应用程序之间提供保密性和数据完整性。该协议由两层组成:TLS记录协议和TLS握手协议。

http://kb.cnblogs.com/page/197396/

java SSLContext:

SSLSocket扩展Socket并提供使用SSL或TLS协议的安全套接字。
这种套接字是正常的流套接字,但是它们在基础网络传输协议(如TCP)上添加了安全保护层。

http://blog.csdn.net/zdx1515888659/article/details/44593967

HttpURLConnection用法详解:

http://blog.csdn.net/x1617044578/article/details/8668632

SSLSocketFactory:

http://blog.csdn.net/yangdelong/article/details/4575983

TrustAnyTrustManager :

强制绕过这证书检查
http://blog.csdn.net/ppby2002/article/details/7928729

javax.net.ssl 中 TrustManager 的子接口:

此接口的实例管理使用哪一个 X509 证书来验证远端的安全套接字。

HttpUrlConnection:

setRequestProperty主要是设置HttpURLConnection请求头里面的属性
urlConn.setRequestProperty(“User-Agent”, “Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)”);
操作系统值,浏览器值,版本
http://0411.iteye.com/blog/1068297
http://blog.csdn.net/wangsf789/article/details/42584727

黑格数据:

https://www.apix.cn/

ProcessBuilder:用于创建操作系统进程

使用ProcessBuilder执行本地命令:
http://www.cnblogs.com/taven/archive/2011/12/17/2291460.html
深入研究java.lang.ProcessBuilder类
http://lavasoft.blog.51cto.com/62575/15662/
Java——ProcessBuilder类的使用及获取APK信息
http://blog.csdn.net/iaiti/article/details/45270371

CaptureUtil.java ( 文件浏览 )

http://www.codeforge.cn/read/143335/CaptureUtil.java__html

你可能感兴趣的:(javaEE)