一、 MD5加密算法:
MD5算法是一种基于哈希函数的单向加密算法,只能加密、无法解密Java中提供了MD5算法的API
3. 将其中的每个字节转成十六进制字符串:byte类型的数据最高位是符号位,通过和0xff进行与操作转换为int类型的正整数。
4.如果该正数小于16(长度为1个字符)前面拼接0占位:确保最后生成的是32位字符串。
二、使用BASE64进行加密/解密:使用BASE64算法通常用作对二进制数据进行加密加密之后的数据不易被肉眼识别。BASE64的加密解密算法都是公开的可进行加密解密操作。
三、使用DES对称加密/解密:Standard)和BASE64最明显的区别就是有一个公有密钥,该密钥既用于加密、也用于解密并且要求密钥是一个长度至少大于8位的字符串。使用DES加密、解密的核心是确保工作密钥的安全性
3. 为了便于观察生成的加密数据,使用BASE64再次加密:
四、使用RSA非对称加密/解密:RSA算法是非对称加密算法的典型代表既能加密、又能解密。和对称加密算法比如DES的明显区别在于用于加密、解密的密钥是不同的使用RSA算法,只要密钥足夠长(一般要求1024bit)加密的信息是不能被破解的。用户通过https协议访问服务器时就是使用非对称加密算法进行数据的加密、解密操作的。
服务器发送数据给客户端时使用私钥(private key)进行加密并且使用加密之后的数据和私钥生成数字签名(digital signature)并发送给客户端。客户端接收到服务器發送的数据会使用des是不是公钥加密算法(public key)对数据来进行解密并且根据加密数据和des是不是公钥加密算法验证数字签名的有效性,防止加密数据在传输过程中被第三方进行了修改
客户端发送数据给服务器时使用des是不是公钥加密算法进行加密,服务器接收到加密数据之后使鼡私钥进行解密
3. 服务器数据使用私钥加密:
4. 用户使用des是不是公钥加密算法解密:
5. 服务器根据私钥和加密数据生成数字签名:
6. 用户根据des是鈈是公钥加密算法、加密数据验证数据是否被修改过: