Java加密与解密的艺术-Base64

Base64是一种基于64个字符的编码算法,经过Base64编码后的数据会比原始数据略长,为原来的4/3倍。

Bouncy Castle与Commons Codec有差别:Bouncy Castle使用”.”作为补位符,而Commons Codec则完全杜绝使用补位符。

尽管如此,Base64仍不能被称为加密算法。Base64算法公开,这一点与柯克霍夫原则并无违背,但充当密钥的字符映射表公开,直接违反了柯克霍夫原则,而且Base64的加密强度并不够高。因此不能讲Base64看做我们认可的现代加密算法。

Base64算法常作为密钥、密文和证书的一种通用存储编码格式,与加密算法形影不离。

Url Base64算法定义有别于RFC 2045,它不需要定义每行字符数及行末回车换行符。符号”+”和符号”/”是不允许出现在URL中的,RFC 4648中给出了相应的替代符号”-“和”_”。同样,符号”=”用作参数分隔符,也不允许出现在URL中。符号”=”在Base64算法中用作填充符。

Commons Codec的Url Base64算法实现遵循了RFC 4648绝大部分定义,为避免可能的错误,使用不定长Base64编码,抛弃了填充符。
不论是通过HTTP的GET方式以URL作为参数传递数据还是通过POST方式以数据体传输数据,都能发现Base64编码藏匿其中。

如甲方向乙方发送密钥,可以将密钥以二进制形式转换为Base64编码后的字符串形式,通过安全途径以文档形式发送给乙方,密钥很可能被要求写在合同中。

数字证书Base64编码形式。它遵循RFC 2045对电子邮件的Base64编码格式要求,每间隔76个字符添加一个回车换行符。在HTTP网络中,数字证书就是以这种编码形式传输的。

代码参见github:
https://github.com/DISSIDIA-986/EncDecAboutJava

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值