如何使用RSA 和 DES 算法 对数据加密?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

如何使用RSA 和 DES 算法 对数据加密?

2018-07-19 16:59:27 907 1
求举例子说明下~谢谢·
取消 提交回答
全部回答(1)
  • 知与谁同
    2019-07-17 22:56:28
    一、混合加密的理由

      a、前面提及了RSA加解密算法和DES加解密算法这两种加解密算法,由于随着计算机系统能力的不断发展,DES的安全性比它刚出现时会弱得多,追溯历史破解DES的案例层出不穷,一台实际的机器可以在数天内破解DES是让某些人相信他们不能依赖DES的安全性的唯一方法。而相对于DES,RSA的安全性则相对高些,虽然破解RSA的案例也有,但其所付出的代价是相对大的(相对DES),如今RSA的密钥也在升级,这说明破解RSA的难度也在增大。

      b、在RSA加解密算法中提及到RSA加密明文会受密钥的长度限制,这就说明用RSA加密的话明文长度是有限制的,而在实际情况我们要进行加密的明文长度或许会大于密钥长度,这样一来我们就不得不舍去RSA加密了。对此,DES加密则没有此限制。

      鉴于以上两点(个人观点),单独的使用DES或RSA加密可能没有办法满足实际需求,所以就采用了RSA和DES加密方法相结合的方式来实现数据的加密。

      其实现方式即:

      1、信息(明文)采用DES密钥加密。

      2、使用RSA加密前面的DES密钥信息。

      最终将混合信息进行传递。

      而接收方接收到信息后:

      1、用RSA解密DES密钥信息。

      2、再用RSA解密获取到的密钥信息解密密文信息。

      最终就可以得到我们要的信息(明文)。

    二、实现例子:

    结合前面RSA和DES加密:

    /// <summary>
    /// RSA和DES混合加密
    /// </summary>
    /// <param name="data">待加密数据</param>
    /// <param name="publicKey">RSA公钥</param>
    /// <returns></returns>
    public Param Encrypt(string data, string publicKey)
    {
    //加密数据
    DESSecurity DES = new DESSecurity();
    string DESKey = DES.GenerateKey();
    string encryptData = DES.Encrypt(data, DESKey);

    //加密DESkey
    RSASecurity RSA = new RSASecurity();
    string encryptDESKey = RSA.Encrypt(DESKey, publicKey);

    Param mixParam = new Param();
    mixParam.DESKey = encryptDESKey;
    mixParam.Data = encryptData;
    return mixParam;
    }

    /// <summary>
    /// RSA和DES混合解密
    /// </summary>
    /// <param name="data">待解密数据</param>
    /// <param name="key">带解密的DESKey</param>
    /// <param name="privateKey">RSA私钥</param>
    /// <returns></returns>
    public string Decrypt(string data, string key, string privateKey)
    {
    //解密DESKey
    RSASecurity RSA = new RSASecurity();
    string DESKey = RSA.Decrypt(key, privateKey);

    //解密数据
    DESSecurity DES = new DESSecurity();
    return DES.Decrypt(data, DESKey);
    0 0
相关问答

3

回答

@aliyun.com邮箱客户端密码登录方式 下线通知

仙游 2015-01-16 14:33:54 126224浏览量 回答数 3

145

回答

【新手入门】云服务器linux使用手册

fanyue88888 2012-11-26 17:14:18 157772浏览量 回答数 145

111

回答

OSS存储服务-客户端工具

newegg11 2012-05-17 15:37:18 295701浏览量 回答数 111

5

回答

公司给开的企业邮箱帐户,为什么用foxmail会提示密码错误?

萝卜兔兔 2015-07-13 10:27:30 144108浏览量 回答数 5

33

回答

Win Server 2003-2016 加密勒索事件必打补丁合集

妙正灰 2017-05-15 10:44:38 280452浏览量 回答数 33

42

回答

【精品问答集锦】Python热门问题

小六码奴 2019-05-30 15:27:34 137199浏览量 回答数 42

1

回答

foxmail 关联企业邮箱提示邮箱地址或者密码错误

2017-12-30 21:50:39 151141浏览量 回答数 1

39

回答

【云服务器分享】简述云服务器对比VPS

dreamdoo 2012-10-08 16:24:18 120437浏览量 回答数 39

97

回答

Redhat/CentOS一键安装web环境全攻略

xiaofanqie 2011-08-11 14:51:38 123744浏览量 回答数 97

8

回答

mail.aliyun.com邮箱android手机客户端设置方法

jack_yang 2013-04-24 09:01:34 122605浏览量 回答数 8
+关注
10077
文章
2994
问答
问答排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载