1.java基础快速从来一遍

一、 获取此次请求的URL

String requestUrl = request.getScheme() //当前链接使用的协议
        +"://" + request.getServerName()//服务器地址  
        + ":" + request.getServerPort() //端口号  
        + request.getContextPath() //应用名称,如果应用名称为
        + request.getServletPath() //请求的相对url  
        + "?" + request.getQueryString(); //请求参数
为什么接口中的属性和方法都默认为public

假设方法或属性默认为protected,它的子类也可以为protected,可能存在某种情况,导致正常访问这些属性和方法会引起错误。接口并不知道未来会被哪个类调用,所以尽量减少接口的访问权限控制,就设置权限为public。出于这种考虑,Sun公司一开始就规定,接口属性和方法默认就为public。

【Java-加密算法】对称加密、非对称加密、单向散列

一提到加密,就会联想到数字签名,这两个经常被混淆的概念到底是什么呢?

加密:加密是一种以密码方式发送信息的方法。只有拥有正确密钥的人才能解开这个信息的密码。对于其他人来说,这个信息看起来就像是一系列随机的字母、数字和符号。如果你要发送不应该让其他人看的敏感信息时,加密是特别重要的。

数字签名:数字签名是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。

加密与数字签名的区别 
加密同数字签名一样,公共密钥加密使用PGP等软件,使用数学算法转换信息并且依靠公共和专用密钥。但是,加密和数字签名是有区别的,加密的目的是通过把信息翻译成密码秘密地隐藏内容。数字签名的目的是完整性和身份识别性,验证一个信息的发送者和指出内容没有被修改。虽然加密和数字签名能够单独使用,但是,你还可以对加密的信息采用数字签名。

当你签署一个信息时,你使用你的专用密钥,任何有你的公共密钥的人都能够验证这个签名是合法的。当你加密一个信息的时候,你为接收你的信息的人使用这个公共密钥,并且使用他或者她的专用密钥解码这个信息。用于人们要保持自己的专用密钥的机密,并且使用口令保护这些密钥,这个信息的接收者应该是惟一的能够观看这个信息的人。


算法分类 
一、单向散列算法: 属于摘要算法,不是一种加密算法,作用是把任意长的输入消息串变化成固定长的输出串的一种函数 
BASE64(严格地说,属于编码格式,而非加密算法) 
MD5(Message Digest algorithm 5,信息摘要算法) 
SHA(Secure Hash Algorithm,安全散列算法) 
HMAC(Hash Message Authentication Code,散列消息鉴别码) 
CRC(Cyclical Redundancy Check,循环冗余码校验)

二、对称加密算法: 加密密钥与解密密钥相同 
DES(Data Encryption Standard,数据加密标准算法) 
AES(Advanced Encryption Standard,高级加密标准) 
PBE(Password-based encryption,基于密码验证) 
RC5(参数可变的分组密码算法 ) 
BLOWFISH(对称密钥分组加密算法)

三、非对称加密算法 :加密密钥与解密密钥不相同 
RSA(算法的名字以发明者的名字命名:Ron Rivest, AdiShamir 和Leonard Adleman) 
DH(Diffie-Hellman算法,密钥一致协议) 
Elgamal(既能用于数据加密也能用于数字签名) 
DSA(Digital Signature Algorithm,数字签名) 
ECC(Elliptic Curves Cryptography,椭圆曲线算法) 
Merkle-Hellman(背包算法) 
Miller Rabin算法(素数测试算法)


参考资料




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孔明兴汉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值