用 AES加密实现 Socket通信 2
1、设计目的 1、熟悉 socket通讯原理 2、掌握 AES加密算法 2
2、系统目标 实现客户服务器之间用 socket进行通信;发送方传输的消息使用 AES加密,接收方对消息解密获取明文
2.3、实现步骤 2
1熟悉 socket通讯过程 socket通常也称作"套接字",用于描述 IP地址和端口,是一个通信链的句柄
应用程序通常通过"套接字"向网络发出请求或者应答网络请求
服务器,使用 ServerSocket监听指定的端口,端口可以随意指定(由于 1024以下的端口通常属于保留端口,在一些操作系统中不可以随意使用,所以建议使用大于 1024的端口),等待客户连接请求,客户连接后,会话产生;在完成会话后,关闭连接
客户端,使用 ClientSocket对网络上某一个服务器的某一个端口发出连接请求,一旦连接成功,打开会话;会话完成后,关闭 Socket
客户端不需要指定打开的端口,通常临时的、动态的分配一个 1024以上的端口
2熟悉 AES高级加密算法加密解密过程 AES算法是美国标准技术研究所(NIST)于 2001年11月正式发布的,它是一种分组加密算法,处理的最小单元是一个分组,即把明文或密文分成固定长度的分组,进而进行加密或解密处理
AES的分组大小为128比特,可以支持的密钥长度有128、192、256三种,分别称为AES-128、AES-192、AES-256,其中又以 AES-128应用最广
AES算法定义了加密过程和解密过程,加密过程和解密过程都是一个周期迭代的过程,迭代的次数由密钥长度决定,对于 AES-128迭代次数为10
由于采用了迭代过程,而且每次迭代所需要的密钥也不同,AES算法定义了密钥扩展过程,该过程也是一个迭代过程,通过 10个周期产生 10个不同的密钥供加密和解密使用