简单的java加密算法有:BASE严格来说属于编码格式,不是加密算法MD(MessageDigestalgorithm,信息摘要算法)SHA(securehashalgorithm)HMAC(HashMessageAuthenticationCode,哈希消息识别码)1.BASEBase是互联网上传输Bit字节码最常用的一种编码方式。您可以查看RFC~RFC以了解MIME的详细规范。基本编码可用于在HTTP环境中传输更长的标识信息。例如,在JavaPersistence系统Hibernate中,Base用于将较长的标识符(通常是-bitUUID)编码为字符串,用作HTTP表单和HTTPGETURL中的参数。在其他应用程序中,通常需要将二进制数据编码成适合放置在URL中的形式(包括隐藏的表单域)。此时使用Base编码是不可读的,即编码后的数据人眼无法直接看到。(来源百度百科)java实现代码:2.MDMD即Message-DigestAlgorithm(信息摘要算法),用于保证信息传输的完整性和一致性。它是计算机广泛使用的哈希算法之一(又译为摘要算法、散列算法),主流的编程语言一般都有MD实现。将数据(如汉字)计算成另一个固定长度的值是散列算法的基本原理。MD的前身是MD、MD、MD。广泛应用于加解密技术,常用于文件验证。查看?不管文件有多大,MD之后都可以生成MD值。比如现在的ISO验证都是MD验证。如何使用?当然,MD的值是ISO通过MD后产生的。一般下载linux-ISO的朋友都看到了下载链接旁边的MD字符串。用于校验文件是否一致。Java实现:MD算法具有以下特点:可压缩性:对于任意长度的数据,计算出的MD值的长度是固定的。易于计算:很容易从原始数据中计算出MD值。抗修改性:对原始数据的任何修改,即使只修改单个字节,也会导致MD值大不相同。弱防碰撞:知道原始数据及其MD值,很难找到一个具有相同MD值的数据(即伪造数据)。强抗碰撞:很难找到两个不同的数据使它们具有相同的MD值。MD的作用是在用数字签名软件对私钥进行签名之前,将大容量信息“压缩”成保密格式(即将任意长度的字节串转换为一定长度的十六进制数串)。除了MD,比较出名的还有sha-、RIPEMD、哈弗。第三种,SHA安全哈希算法,主要适用于数字签名标准(DigitalSignatureStandardDSS)中定义的数字签名算法(DigitalSignatureAlgorithmDSA)。对于长度小于^bits的消息,SHA生成一位消息摘要。经过加密专家多年的发展和改进,算法日趋完善并得到广泛应用。该算法的思想是接收一段明文,并以不可逆的方式将其转换成一段(通常更小的)密文。也可以简单理解为取一串输入编码(称为预映射或信息),并将其转换为长度较短、固定位数的输出序列,即哈希值(又称哈希值)的过程信息摘要或信息认证码)。哈希函数值可以说是明文的“指纹”或“摘要”,因此哈希值的数字签名可以看作是明文的数字签名。java实现:SHA-与MD的比较:由于两者都是从MD派生的,SHA-和MD彼此非常相似。相应地,它们的强度和其他性质也相似,但有以下区别:显着的区别是SHA-digest比MD-digest的比特长。使用蛮力技术,生成任何消息以使其摘要等于给定消息的摘要的难度对于MD是^个数量级的操作,对于SHA-是^个数量级的操作。因此,SHA-具有更大的强度。针对密码分析的安全性:由于MD的设计,它容易受到密码分析的攻击,而SHA-似乎不太容易受到此类威胁。速度:SHA-在相同硬件上运行速度比MD慢。第四种。HMACHMAC(HashMessageAuthenticationCode,哈希消息认证码,基于密钥哈希算法的认证协议。消息认证码实现认证的原理是利用公有函数和密钥生成一个定长值作为认证Identification,用这个标识来标识报文的完整性。使用一个密钥生成一个固定大小的小数据块,即MAC,并将其添加到报文中,然后发送。接收方使用与共享的密钥发件人身份验证等java实现代码:
