Java中对字符串进行加密和解密(转)

Java中对字符串进行加密和解密(转)

1.引言

在实际工作中我们常常会遇到对数据进行加密解密的工作(如对密码数据的保护或者对网络传输的数据进行保护),因为数据加密解密需要非常复杂、高效的算法,所以通常对于一般的程序员是无法完成的工作,即使对于一些公开的加密算法进行编程都是一件非常艰巨的任务(少数智商及高的程序员除外)。幸运的是现在有很多加解密算法有现成的API,我们只要了解一些加解密的工作原理,能够使用一些加解密API来完成数据保护的工作就可以了。

2.密码学简介

密码学主要包括密码编码学(加密)和密码分析学(解密)。

2.1密码学的几个主要作用:

A.Confidentiality

机密行,对数据进行保护;

B.Authentication

鉴别性,确定收到消息的接收人是数据应该正确送达的人,入侵者不能进行伪装;

C.Integrity

完整行,消息的接受者能够判断出接收的数据是否正确,是否在传输过程中遭到篡改;

D.Norepudiation

抵赖性,发送数据的人不能在事后不承认自己发过的数据。

2.2数据加解密模型

加解密算法分为两种:受限制的安全算法和非受限的安全算法。受限制的安全算法出现的比较早,最初用于军方,对一些机密的数据进行加密,由于这种安全算法算法保密,所以使用率低,而且实际加密效果并不理想。非受限安全算法是一些公开的算法,使用率高,这些算法都是基于密钥的算法,现在我们主要使用的主要是这种算法。

下面就是一个数据加解密的模型。

相关推荐