数据的加密处理

41 篇文章 0 订阅

  在软件开发过程中,往往会有很多的地方需要用的数据的加密处理,不论是在PC端的 系统应用,还是 在移动端的应用。

常见的数据加密方式:

        1、常用密钥算法

DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合; 

      3DES(Triple DES):是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高; 

      RC2和 RC4:用变长密钥对大量数据进行加密,比 DES 快; 

      IDEA(International Data Encryption Algorithm)国际数据加密算法,使用 128 位密钥提供非常强的安全性; 

      RSA:由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件快的长度也是可变的; 

      DSA(Digital Signature Algorithm):数字签名算法,是一种标准的 DSS(数字签名标准); 

     AES(Advanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高,目前 AES 标准的一个实现是 Rijndael 算法; 

     BLOWFISH,它使用变长的密钥,长度可达448位,运行速度很快; 
    其它算法,如ElGamal、Deffie-Hellman、新型椭圆曲线算法ECC等。

    2、单向散列算法

   MD5(Message Digest Algorithm 5):是RSA数据安全公司开发的一种单向散列算法,MD5被广泛使用,可以用来把不同长度的数据块进行暗码运算成一个128位的数值; 

SHA(Secure Hash Algorithm)这是一种较新的散列算法,可以对任意长度的数据运算生成一个160位的数值; 

MAC(Message Authentication Code):消息认证代码,是一种使用密钥的单向函数,可以用它们在系统上或用户之间认证文件或消息。HMAC(用于消息认证的密钥散列法)就是这种函数的一个例子。 
CRC(Cyclic Redundancy Check):循环冗余校验码,CRC校验由于实现简单,检错能力强,被广泛使用在各种数据校验应用中。占用系统资源少,用软硬件均能实现,是进行数据传 输差错检测地一种很好的手段(CRC 并不是严格意义上的散列算法,但它的作用与散列算法大致相同,所以归于此类)。

      在上述这些 加密算法中,我具体描述一下 一个再 常见的登录时候用的加密方式,想必 登录功能 在很多的地方都有用到,但是要实现登录功能时,为了保护到客户的用户名和密码,那就得做好数据的加密处理了。下面我主要通过登录功能来阐述数据的加密。

         数据的加密方式:SHA512、Base64、HmacSHA512  三中结合形式。

        大概的流程:

             1、先有用户输入的UserName通过Http协议请求服务器的API获取 数据加密处理的密钥,在把用户的UserPWD和密钥结合组成新的密钥。

                String newPwd = userPwdT + obj.getString("salt");

      2、得到新的密钥之后,通过 SHA512处理
        byte[] hashPwd = DigestUtils.encodeSHA512(newPwd.getBytes());

              3、再通过 Base64处理新的字节码密钥

String encryptedPWD = Base64.encodeBytes(hashPwd);
     4、// 接着用生成的base64的字符串作为密钥,使用HmacSHA512算法加密返回的key值。
byte[] keyHash = Hmac.encodeHmacSHA512(obj.getString("key").getBytes(),encryptedPWD.getBytes());

              5、最后在  Base64 处理加密的密钥,上传到服务器
        String encryptedKey = Base64.encodeBytes(keyHash);

              再加上后续上传的加密工具类即可。

     












评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值