精华内容
下载资源
问答
  • 对称加密:双方使用的同一个密钥,既可以加密又可以解密,这种加密方法称为对称加密,也称为单密钥加密。 优点:速度快,对称性加密通常在消息发送方...另外,每对用户每次使用对称加密算法时,都需要使用其他人不...

    对称加密:双方使用的同一个密钥,既可以加密又可以解密,这种加密方法称为对称加密,也称为单密钥加密。

    优点:速度快,对称性加密通常在消息发送方需要加密大量数据时使用,算法公开、计算量小、加密速度快、加密效率高。

    缺点:在数据传送前,发送方和接收方必须商定好秘钥,然后 使双方都能保存好秘钥。其次如果一方的秘钥被泄露,那么加密信息也就不安全了。另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的唯一秘 钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担。

    在对称加密算法中常用的算法有:DES、AES等。

    AES:密钥的长度可以为128、192和256位,也就是16个字节、24个字节和32个字节

    DES:密钥的长度64位,8个字节。

    非对称加密:一对密钥由公钥和私钥组成(可以使用很多对密钥)。私钥解密公钥加密数据,公钥解密私钥加密数据(私钥公钥可以互相加密解密)。

    私钥只能由一方保管,不能外泄。公钥可以交给任何请求方。

    在非对称加密算法中常用的算法有: 

    RSA、Elgamal、背包算法、Rabin、Diffie-Hellman、ECC(椭圆曲线加密算法)。
    使用最广泛的是RSA算法,Elgamal是另一种常用的非对称加密算法。

    缺点:速度较慢

    优点:安全

     

    1.分类

    加密算法首先分为两种:单向加密、双向加密。

    单向加密是不可逆的,也就是只能加密,不能解密。通常用来传输类似用户名和密码,直接将加密后的数据提交到后台,因为后台不需要知道用户名和密码,可以直接将收到的加密后的数据存储到数据库。

    双向加密算法通常分为对称性加密算法和非对称性加密算法,对于对称性加密算法,信息接收双方都需事先知道密匙和加解密算法且其密匙是相同的,之后便是对数据进行 加解密了。非对称算法与之不同,发送双方A,B事先均生成一堆密匙,然后A将自己的公有密匙发送给B,B将自己的公有密匙发送给A,如果A要给B发送消 息,则先需要用B的公有密匙进行消息加密,然后发送给B端,此时B端再用自己的私有密匙进行消息解密,B向A发送消息时为同样的道理。

    2.常用算法

    几种对称性加密算法:AES,DES,3DES

    DES是一种分组数据加密技术(先将数据分成固定长度的小数据块,之后进行加密),速度较快,适用于大量数据加密,而3DES是一种基于DES的加密算法,使用3个不同密匙对同一个分组数据块进行3次加密,如此以使得密文强度更高。

    相较于DES和3DES算法而言,AES算法有着更高的速度和资源使用效率,安全级别也较之更高了,被称为下一代加密标准。

    几种非对称性加密算法:RSA,DSA,ECC

    RSA和DSA的安全性及其它各方面性能都差不多,而ECC较之则有着很多的性能优越,包括处理速度,带宽要求,存储空间等等。

    几种线性散列算法(签名算法):MD5,SHA1,HMAC

    这几种算法只生成一串不可逆的密文,经常用其效验数据传输过程中是否经过修改,因为相同的生成算法对于同一明文只会生成唯一的密文,若相同算法生成的密文不同,则证明传输数据进行过了修改。通常在数据传说过程前,使用MD5和SHA1算法均需要发送和接收数据双方在数据传送之前就知道密匙生成算法,而HMAC与之不同的是需要生成一个密匙,发送方用此密匙对数据进行摘要处理(生成密文),接收方再利用此密匙对接收到的数据进行摘要处理,再判断生成的密文是否相同。

    3.加密算法选用

    对于各种加密算法的选用:

    由于对称加密算法的密钥管理是一个复杂的过程,密钥的管理直接决定着他的安全性,因此当数据量很小时,我们可以考虑采用非对称加密算法。

    在实际的操作过程中,我们通常采用的方式是:采用非对称加密算法管理对称算法的密钥,然后用对称加密算法加密数据,这样我们就集成了两类加密算法的优点,既实现了加密速度快的优点,又实现了安全方便管理密钥的优点。

    如果在选定了加密算法后,那采用多少位的密钥呢?一般来说,密钥越长,运行的速度就越慢,应该根据的我们实际需要的安全级别来选择,一般来说,RSA建议采用1024位的数字,ECC建议采用160位,AES采用128为即可。

    对于几种加密算法的内部实现原理,有兴趣的可以细细研究。而对于其实现而言,网上有很多开源版本,比较经典的是PorlaSSL(官网:http://en.wikipedia.org/wiki/PolarSSL )。其它语言如JAVA,OBJC也都有相应的类库可以使用。

     

    常见加密算法 :

    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等。 比如说,MD5,你在一些比较正式而严格的网站下的东西一般都会有MD5值给出,如安全焦点的软件工具,每个都有MD5。严格来说MD5并不能算是一种加密算法,只能说是一种摘要算法(数据摘要算法是密码学算法中非常重要的一个分支,它通过对所有数据提取指纹信息以实现数据签名、数据完整性校验等功能,由于其不可逆性,有时候会被用做敏感信息的加密。数据摘要算法也被称为哈希(Hash)算法、散列算法。)

    MD5分类:

    1、CRC8、CRC16、CRC32

    CRC(Cyclic Redundancy Check,循环冗余校验)算法出现时间较长,应用也十分广泛,尤其是通讯领域,现在应用最多的就是 CRC32 算法,它产生一个4字节(32位)的校验值,一般是以8位十六进制数,如FA 12 CD 45等。CRC算法的优点在于简便、速度快,严格的来说,CRC更应该被称为数据校验算法,但其功能与数据摘要算法类似,因此也作为测试的可选算法。

    在 WinRAR、WinZIP 等软件中,也是以 CRC32 作为文件校验算法的。一般常见的简单文件校验(Simple File Verify – SFV)也是以 CRC32算法为基础,它通过生成一个后缀名为 .SFV 的文本文件,这样可以任何时候可以将文件内容 CRC32运算的结果与 .SFV 文件中的值对比来确定此文件的完整性。

    与 SFV 相关工具软件有很多,如MagicSFV、MooSFV等。

    2、MD2 、MD4、MD5

    这是应用非常广泛的一个算法家族,尤其是 MD5(Message-Digest Algorithm 5,消息摘要算法版本5),它由MD2、MD3、MD4发展而来,由Ron Rivest(RSA公司)在1992年提出,被广泛应用于数据完整性校验、数据(消息)摘要、数据加密等。MD2、MD4、MD5 都产生16字节(128位)的校验值,一般用32位十六进制数表示。MD2的算法较慢但相对安全,MD4速度很快,但安全性下降,MD5比MD4更安全、速度更快。

    在互联网上进行大文件传输时,都要得用MD5算法产生一个与文件匹配的、存储MD5值的文本文件(后缀名为.md5或.md5sum),这样接收者在接收到文件后,就可以利用与 SFV 类似的方法来检查文件完整性,绝大多数大型软件公司或开源组织都是以这种方式来校验数据完整性,而且部分操作系统也使用此算法来对用户密码进行加密,另外,它也是目前计算机犯罪中数据取证的最常用算法。

    与MD5 相关的工具有很多,如 WinMD5等。

    3、SHA1、SHA256、SHA384、SHA512

    SHA(Secure Hash Algorithm)是由美国专门制定密码算法的标准机构-- 美国国家标准技术研究院(NIST)制定的,SHA系列算法的摘要长度分别为:SHA为20字节(160位)、SHA256为32字节(256位)、 SHA384为48字节(384位)、SHA512为64字节(512位),由于它产生的数据摘要的长度更长,因此更难以发生碰撞,因此也更为安全,它是未来数据摘要算法的发展方向。由于SHA系列算法的数据摘要长度较长,因此其运算速度与MD5相比,也相对较慢。

    SHA1的应用较为广泛,主要应用于CA和数字证书中,另外在互联网中流行的BT软件中,也是使用SHA1来进行文件校验的。

    4、RIPEMD、PANAMA、TIGER、ADLER32 等

    RIPEMD是Hans Dobbertin等3人在对MD4,MD5缺陷分析基础上,于1996年提出来的,有4个标准128、160、256和320,其对应输出长度分别为16字节、20字节、32字节和40字节。

    TIGER由Ross在1995年提出。Tiger号称是最快的Hash算法,专门为64位机器做了优化。

    展开全文
  • 对称加密算法和非对称加密算法

    千次阅读 2017-06-16 18:47:36
    (一)对称加密(Symmetric Cryptography)对称加密是最快速、最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secret key),这种方法在密码学中叫做对称加密算法。对称加密有很多...

    (一)对称加密(Symmetric Cryptography)

    对称加密是最快速、最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secret key),这种方法在密码学中叫做对称加密算法。对称加密有很多种算法,由于它效率很高,所以被广泛使用在很多加密协议的核心当中。
    对称加密通常使用的是相对较小的密钥,一般小于256 bit。因为密钥越大,加密越强,但加密与解密的过程越慢。密钥的大小既要照顾到安全性,也要照顾到效率,是一个trade-off。对称加密的一大缺点是密钥的管理与分配,换句话说,如何把密钥发送到需要解密你的消息的人的手里是一个问题。在发送密钥的过程中,密钥有很大的风险会被黑客们拦截。现实中通常的做法是将对称加密的密钥进行非对称加密,然后传送给需要它的人。

    对称加密经典算法:AES,DES,3DES,TDEA,Blowfish,RC5,IDEA。

    (二)非对称加密(Asymmetric Cryptography)

    1976年,美国学者Dime和Henman为解决信息公开传送和密钥管理问题,提出一种新的密钥交换协议,允许在不安全的媒体上的通讯双方交换信息,安全地达成一致的密钥,这就是“公开密钥系统”。相对于“对称加密算法”这种方法也叫做“非对称加密算法”。
    非对称加密为数据的加密与解密提供了一个非常安全的方法,它使用了一对密钥,公钥(public key)和私钥(private key)。私钥只能由一方安全保管,不能外泄,而公钥则可以发给任何请求它的人。非对称加密使用这对密钥中的一个进行加密,而解密则需要另一个密钥。

    虽然非对称加密很安全,但是和对称加密比起来,它非常的慢,所以我们还是要用对称加密来传送消息,但对称加密所使用的密钥我们可以通过非对称加密的方式发送出去。

    非对称加密经典算法:RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)。

    (三)总结

    (1) 对称加密加密与解密使用的是同样的密钥,所以速度快,但由于需要将密钥在网络传输,所以安全性不高。
    (2) 非对称加密使用了一对密钥,公钥与私钥,所以安全性高,但加密与解密速度慢。
    (3) 解决的办法是将对称加密的密钥使用非对称加密的公钥进行加密,然后发送出去,接收方使用私钥进行解密得到对称加密的密钥,然后双方可以使用对称加密来进行沟通。

    下面包含了一个我自己写的小工具包含了前端Js的一个加密解密工具(后面有空会封装成前端和nodejs通用的方法),对称加密用的AES,非对称加密用的RSA,可以看下,顺手star哦
    https://github.com/kuaisufei/Cipher

    展开全文
  • 对称加密:双方使用的同一个密钥,既可以加密又可以解密,这种加密方法称为对称加密,也称为单密钥加密。 优点:速度快,对称性加密通常在消息发送方需要加密...另外,每对用户每次使用对称加密算法时,都需要使...

    对称加密:双方使用的同一个密钥,既可以加密又可以解密,这种加密方法称为对称加密,也称为单密钥加密。

    优点:速度快,对称性加密通常在消息发送方需要加密大量数据时使用,算法公开、计算量小、加密速度快、加密效率高。

    缺点:在数据传送前,发送方和接收方必须商定好秘钥,然后 使双方都能保存好秘钥。其次如果一方的秘钥被泄露,那么加密信息也就不安全了。另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的唯一秘 钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担。

    在对称加密算法中常用的算法有:DES、AES等。

    AES:密钥的长度可以为128、192和256位,也就是16个字节、24个字节和32个字节

    DES:密钥的长度64位,8个字节。

    非对称加密:一对密钥由公钥和私钥组成(可以使用很多对密钥)。私钥解密公钥加密数据,公钥解密私钥加密数据(私钥公钥可以互相加密解密)。

    私钥只能由一方保管,不能外泄。公钥可以交给任何请求方。

    在非对称加密算法中常用的算法有: 

    RSA、Elgamal、背包算法、Rabin、Diffie-Hellman、ECC(椭圆曲线加密算法)。
    使用最广泛的是RSA算法,Elgamal是另一种常用的非对称加密算法。

    缺点:速度较慢

    优点:安全

     

    1.分类

    加密算法首先分为两种:单向加密、双向加密。

    单向加密是不可逆的,也就是只能加密,不能解密。通常用来传输类似用户名和密码,直接将加密后的数据提交到后台,因为后台不需要知道用户名和密码,可以直接将收到的加密后的数据存储到数据库。

    双向加密算法通常分为对称性加密算法和非对称性加密算法,对于对称性加密算法,信息接收双方都需事先知道密匙和加解密算法且其密匙是相同的,之后便是对数据进行 加解密了。非对称算法与之不同,发送双方A,B事先均生成一堆密匙,然后A将自己的公有密匙发送给B,B将自己的公有密匙发送给A,如果A要给B发送消 息,则先需要用B的公有密匙进行消息加密,然后发送给B端,此时B端再用自己的私有密匙进行消息解密,B向A发送消息时为同样的道理。

    2.常用算法

    几种对称性加密算法:AES,DES,3DES

    DES是一种分组数据加密技术(先将数据分成固定长度的小数据块,之后进行加密),速度较快,适用于大量数据加密,而3DES是一种基于DES的加密算法,使用3个不同密匙对同一个分组数据块进行3次加密,如此以使得密文强度更高。

    相较于DES和3DES算法而言,AES算法有着更高的速度和资源使用效率,安全级别也较之更高了,被称为下一代加密标准。

    几种非对称性加密算法:RSA,DSA,ECC

    RSA和DSA的安全性及其它各方面性能都差不多,而ECC较之则有着很多的性能优越,包括处理速度,带宽要求,存储空间等等。

    几种线性散列算法(签名算法):MD5,SHA1,HMAC

    这几种算法只生成一串不可逆的密文,经常用其效验数据传输过程中是否经过修改,因为相同的生成算法对于同一明文只会生成唯一的密文,若相同算法生成的密文不同,则证明传输数据进行过了修改。通常在数据传说过程前,使用MD5和SHA1算法均需要发送和接收数据双方在数据传送之前就知道密匙生成算法,而HMAC与之不同的是需要生成一个密匙,发送方用此密匙对数据进行摘要处理(生成密文),接收方再利用此密匙对接收到的数据进行摘要处理,再判断生成的密文是否相同。

    3.加密算法选用

    对于各种加密算法的选用:

    由于对称加密算法的密钥管理是一个复杂的过程,密钥的管理直接决定着他的安全性,因此当数据量很小时,我们可以考虑采用非对称加密算法。

    在实际的操作过程中,我们通常采用的方式是:采用非对称加密算法管理对称算法的密钥,然后用对称加密算法加密数据,这样我们就集成了两类加密算法的优点,既实现了加密速度快的优点,又实现了安全方便管理密钥的优点。

    如果在选定了加密算法后,那采用多少位的密钥呢?一般来说,密钥越长,运行的速度就越慢,应该根据的我们实际需要的安全级别来选择,一般来说,RSA建议采用1024位的数字,ECC建议采用160位,AES采用128为即可。

    对于几种加密算法的内部实现原理,有兴趣的可以细细研究。而对于其实现而言,网上有很多开源版本,比较经典的是PorlaSSL(官网:http://en.wikipedia.org/wiki/PolarSSL )。其它语言如JAVA,OBJC也都有相应的类库可以使用。

     

    常见加密算法 :

    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等。 比如说,MD5,你在一些比较正式而严格的网站下的东西一般都会有MD5值给出,如安全焦点的软件工具,每个都有MD5。严格来说MD5并不能算是一种加密算法,只能说是一种摘要算法(数据摘要算法是密码学算法中非常重要的一个分支,它通过对所有数据提取指纹信息以实现数据签名、数据完整性校验等功能,由于其不可逆性,有时候会被用做敏感信息的加密。数据摘要算法也被称为哈希(Hash)算法、散列算法。)

    MD5分类:

    1、CRC8、CRC16、CRC32

    CRC(Cyclic Redundancy Check,循环冗余校验)算法出现时间较长,应用也十分广泛,尤其是通讯领域,现在应用最多的就是 CRC32 算法,它产生一个4字节(32位)的校验值,一般是以8位十六进制数,如FA 12 CD 45等。CRC算法的优点在于简便、速度快,严格的来说,CRC更应该被称为数据校验算法,但其功能与数据摘要算法类似,因此也作为测试的可选算法。

    在 WinRAR、WinZIP 等软件中,也是以 CRC32 作为文件校验算法的。一般常见的简单文件校验(Simple File Verify – SFV)也是以 CRC32算法为基础,它通过生成一个后缀名为 .SFV 的文本文件,这样可以任何时候可以将文件内容 CRC32运算的结果与 .SFV 文件中的值对比来确定此文件的完整性。

    与 SFV 相关工具软件有很多,如MagicSFV、MooSFV等。

    2、MD2 、MD4、MD5

    这是应用非常广泛的一个算法家族,尤其是 MD5(Message-Digest Algorithm 5,消息摘要算法版本5),它由MD2、MD3、MD4发展而来,由Ron Rivest(RSA公司)在1992年提出,被广泛应用于数据完整性校验、数据(消息)摘要、数据加密等。MD2、MD4、MD5 都产生16字节(128位)的校验值,一般用32位十六进制数表示。MD2的算法较慢但相对安全,MD4速度很快,但安全性下降,MD5比MD4更安全、速度更快。

    在互联网上进行大文件传输时,都要得用MD5算法产生一个与文件匹配的、存储MD5值的文本文件(后缀名为.md5或.md5sum),这样接收者在接收到文件后,就可以利用与 SFV 类似的方法来检查文件完整性,绝大多数大型软件公司或开源组织都是以这种方式来校验数据完整性,而且部分操作系统也使用此算法来对用户密码进行加密,另外,它也是目前计算机犯罪中数据取证的最常用算法。

    与MD5 相关的工具有很多,如 WinMD5等。

    3、SHA1、SHA256、SHA384、SHA512

    SHA(Secure Hash Algorithm)是由美国专门制定密码算法的标准机构-- 美国国家标准技术研究院(NIST)制定的,SHA系列算法的摘要长度分别为:SHA为20字节(160位)、SHA256为32字节(256位)、 SHA384为48字节(384位)、SHA512为64字节(512位),由于它产生的数据摘要的长度更长,因此更难以发生碰撞,因此也更为安全,它是未来数据摘要算法的发展方向。由于SHA系列算法的数据摘要长度较长,因此其运算速度与MD5相比,也相对较慢。

    SHA1的应用较为广泛,主要应用于CA和数字证书中,另外在互联网中流行的BT软件中,也是使用SHA1来进行文件校验的。

    4、RIPEMD、PANAMA、TIGER、ADLER32 等

    RIPEMD是Hans Dobbertin等3人在对MD4,MD5缺陷分析基础上,于1996年提出来的,有4个标准128、160、256和320,其对应输出长度分别为16字节、20字节、32字节和40字节。

    TIGER由Ross在1995年提出。Tiger号称是最快的Hash算法,专门为64位机器做了优化。

    转载于:https://www.cnblogs.com/dalulu/p/11395804.html

    展开全文
  • 对称加密算法,非对称加密算法

    千次阅读 2008-06-03 16:04:00
    对称加密算法,非对称加密算法常见的加密算法可以分成三类,对称加密算法,非对称加密算法和Hash算法。对称加密(也叫私钥加密)指加密和解密使用相同密钥的加密算法。对称加密算法的优点在于加解密的高速度和使用长...
    对称加密算法,非对称加密算法常见的加密算法可以分成三类,
    对称加密算法,非对称加密算法和Hash算法。

    对称加密(也叫私钥加密)指加密和解密使用相同密钥的加密算法。对称加密算法的优点在于加解密的高速度和使用长密钥时的难破解性。假设两个用户需要使用对称加密方法加密然后交换数据,则用户最少需要2个密钥并交换使用,如果企业内用户有n个,则整个企业共需要n×(n-1) 个密钥,密钥的生成和分发将成为企业信息部门的恶梦。对称加密算法的安全性取决于加密密钥的保存情况,但要求企业中每一个持有密钥的人都保守秘密是不可能的,他们通常会有意无意的把密钥泄漏出去——如果一个用户使用的密钥被入侵者所获得,入侵者便可以读取该用户密钥加密的所有文档,如果整个企业共用一个加密密钥,那整个企业文档的保密性便无从谈起。DESCryptoServiceProvider
    RC2CryptoServiceProvider
     RijndaelManaged
    TripleDESCryptoServiceProvider
    //例加密文本文件(RijndaelManaged )
    byte[] key = { 24, 55, 102,24, 98, 26, 67, 29, 84, 19, 37, 118, 104, 85, 121, 27, 93, 86, 24, 55, 102, 24,98, 26, 67, 29, 9, 2, 49, 69, 73, 92 };
    byte[] IV ={ 22, 56, 82, 77, 84, 31, 74, 24,55, 102, 24, 98, 26, 67, 29, 99 };
    RijndaelManaged myRijndael = new RijndaelManaged();
     FileStream fsOut = File.Open(strOutName, FileMode.Create,FileAccess.Write);//strOutName文件名及路径 FileStream fsIn = File.Open(strPath, FileMode.Open,FileAccess.Read);
    CryptoStream csDecrypt=new CryptoStream(fsOut,myRijndael.CreateEncryptor(key, IV),CryptoStreamMode.Write);//读加密文本
    BinaryReader br = new BinaryReader(fsIn);
    csDecrypt.Write(br.ReadBytes((int)fsIn.Length),0, (int)fsIn.Length);
    csDecrypt.FlushFinalBlock();
    csDecrypt.Close();
     fsIn.Close();
    fsOut.Close();
    //解密文件
    byte[] key = { 24, 55, 102, 24, 98, 26, 67, 29, 84, 19, 37, 118,104, 85, 121, 27, 93, 86, 24, 55, 102, 24, 98, 26, 67, 29, 9, 2, 49, 69, 73, 92};
    byte[] IV ={ 22, 56, 82, 77, 84, 31, 74, 24, 55, 102, 24, 98, 26,67, 29, 99 };
    RijndaelManaged myRijndael = new RijndaelManaged();
    FileStream fsOut = File.Open(strPath, FileMode.Open, FileAccess.Read);
    CryptoStream csDecrypt = new CryptoStream(fsOut, myRijndael.CreateDecryptor(key,IV), CryptoStreamMode.Read);
    StreamReader sr = new StreamReader(csDecrypt);//把文件读出来
    StreamWriter sw = new StreamWriter(strInName);//解密后文件写入一个新的文件
    sw.Write(sr.ReadToEnd());
    sw.Flush();
    sw.Close();
    sr.Close();f
    sOut.Close();
    用图片加密(RC2CryptoServiceProvider )
     FileStreamfsPic = new FileStream(pictureBox1.ImageLocation,FileMode.Open, FileAccess.Read);
    //加密文件流(textBox1.Text是文件名及路径)
    FileStream fsText = new FileStream(textBox1.Text, FileMode.Open,FileAccess.Read);
    byte[] bykey = new byte[16]; //初始化
    Key IVbyte[] byIv = new byte[8];
    fsPic.Read(bykey, 0, 16);
    fsPic.Read(byIv, 0, 8);
    RC2CryptoServiceProvider desc = newRC2CryptoServiceProvider();//desc进行加密
    BinaryReader br = new BinaryReader(fsText);//从要加密的文件中读出文件内容
    FileStream fsOut = File.Open(strLinPath,FileMode.Create, FileAccess.Write); // strLinPath临时加密文件路径CryptoStream cs = new CryptoStream(fsOut, desc.CreateEncryptor(bykey,byIv), CryptoStreamMode.Write);//写入临时加密文件
    cs.Write(br.ReadBytes((int)fsText.Length),0, (int)fsText.Length);//写入加密流
    cs.FlushFinalBlock();
    cs.Flush();
    cs.Close();
    fsPic.Close();
    fsText.Close();
    fsOut.Close();
    用图片解密
    FileStream fsPic = new FileStream(pictureBox1.ImageLocation, FileMode.Open, FileAccess.Read); //图片流FileStream fsOut = File.Open(textBox1.Text,FileMode.Open, FileAccess.Read);//解密文件流
    byte[] bykey = new byte[16]; //初始化
    Key IVbyte[] byIv = new byte[8];
    fsPic.Read(bykey, 0, 16);
    fsPic.Read(byIv, 0, 8);
    string strPath = textBox1.Text;//加密文件的路径
    int intLent = strPath.LastIndexOf("//")+ 1;
    int intLong = strPath.Length;
    string strName = strPath.Substring(intLent, intLong - intLent);//要加密的文件名称
    string strLinPath = "C://"+ strName;//临时解密文件路径
    FileStream fs = new FileStream(strLinPath, FileMode.Create,FileAccess.Write);
    RC2CryptoServiceProvider desc = newRC2CryptoServiceProvider();//desc进行解密
    CryptoStream csDecrypt = new CryptoStream(fsOut, desc.CreateDecryptor(bykey,byIv), CryptoStreamMode.Read);
    //读出加密文件
    BinaryReader sr = new BinaryReader(csDecrypt);//从要加密流中读出文件内容
    BinaryWriter sw = new BinaryWriter(fs);//写入解密流
    sw.Write(sr.ReadBytes(Convert.ToInt32(fsOut.Length)));
    //sw.Flush();
    sw.Close();
    sr.Close();
    fs.Close();
    fsOut.Close();
    fsPic.Close();
    csDecrypt.Flush();
    File.Delete(textBox1.Text.TrimEnd());//删除原文件
    File.Copy(strLinPath, textBox1.Text);//复制加密文件
    File.Delete(strLinPath);//删除临时文件
    非对称加密(公钥加密)
    指加密和解密使用不同密钥的加密算法,也称为公私钥加密。假设两个用户要加密交换数据,双方交换公钥,使用时一方用对方的公钥加密,另一方即可用自己的私钥解密。如果企业中有n个用户,企业需要生成n对密钥,并分发n个公钥。由于公钥是可以公开的,用户只要保管好自己的私钥即可,因此加密密钥的分发将变得 十分简单。同时,由于每个用户的私钥是唯一的,其他用户除了可以可以通过信息发送者的公钥来验证信息的来源是否真实,还可以确保发送者无法否认曾发送过该信息。非对称加密的缺点是加解密速度要远远慢于对称加密,在某些极端情况下,甚至能比非对称加密慢上1000倍。
    DSACryptoServiceProvider
     RSACryptoServiceProvider
    //加密UnicodeEncoding  encoding   =   new  UnicodeEncoding();
    byte[]   PasswordBytes   =  encoding.GetBytes(password);//将密码转换为字节数组RSACryptoServiceProvider  crypt=new  RSACryptoServiceProvider();
    //RSA加密算法,非对称PasswordBytes=crypt.Encrypt(password   ,false);//加密字节数组,这是加密后的密码值,放入数据库中的表字段中。string  key=crypt.ToXmlString(true);//输出密钥为XML格式的字符串,且包含私钥,这个字符串要作为数据库表中的一个字段同用户的密码放在一起。
    //解密RSACryptoServiceProvider  crypt=new  RSACryptoServiceProvider();//已随机生成了一个密钥对crypt.Clear();//毁掉当前密钥对
    crypt.FromXmlString(key)//输入密钥对,key是从数据库表字段中读取的那个XML格式的字符串,即密钥字段PasswordBytes=crypt.Decrypt(password   ,false);//解密字节数组,返回原始密码给用户上面方法的一个特点是每个用户对应一个密钥(包含公钥和私钥),它们都是随机生成的,所以各不相同。不过缺点也是很明显的,就是密钥存储在数据库中,如果数据库被攻破密钥就泄漏了。
    还有另外一个方法就是依照上面方法随机生成一个密钥对(包含公钥和私钥),通过ToXmlString(true)方法导出,然后把这个XML字符串格式的密钥放到你的Web程序的Web.config文件的AppSetting节点里面,然后通过FromXmlString(key)方法读入密钥,这样就意味着所有的用户密码都用同一个密钥对加密和解密。
    Hash算法(哈希值)
    Hash算法特别的地方在于它是一种单向算法,用户可以通过Hash算法对目标信息生成一段特定长度的唯一的Hash值,却不能通过这个Hash值重新获得目标信息。因此Hash算法常用在不可还原的密码存储、信息完整性校验等。
    HMACSHA1
     MACTripleDES
     MD5CryptoServiceProvider
     SHA1Managed
     SHA256Managed
     SHA384Managed
     SHA512Managed
     MD5CryptoServiceProvider M5 = newMD5CryptoServiceProvider();
    txtJia.Text =ASCIIEncoding.ASCII.GetString(M5.ComputeHash(ASCIIEncoding.ASCII.GetBytes(txtStart.Text)));
    展开全文
  • 对称加密算法设计与应用(附答辩记录)(包含选题审批表,任务书,开题报告,中期报告,毕业论文17000字,代码)摘 要:本设计首先介绍了非对称加密算法的研究意义和研究背景,接着说明了密码原理与RSA加密原理,着重介绍了...
  • 对称加密算法用来对敏感数据等信息进行加密,常用的算法包括DES、3DES、AES、DESX、Blowfish、、RC4、RC5、RC6。  DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合。 3DES...
  • 常用的对称加密算法包括:DES、3DES、AES、RC4、RC5、RC6。 非对称加密算法 指加密和解密使用不同密钥的加密算法,也称为公私钥加密。假设两个用户要加密交换数据,双方交换公钥,使用时一方用对方的公钥加密,另...
  • 对称加密算法-DES

    2019-12-07 15:55:05
    前言 在日常开发中,我们经常会用到各种加密算法,这里来和大家一起看看对称算法中的DES。对称加密算法的特点是算法公开,计算量小,加密速度快,...常见的对称加密算法包括DES算法、3DES算法、AES算法。下面是一个...
  • 常用加密算法之非对称加密算法

    万次阅读 2018-03-16 21:44:45
    对称加密算法 非对称加密算法是一种密钥的保密方法。非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有...
  • 对称加密算法

    千次阅读 2016-02-25 16:05:09
    哪些是对称加密算法()A、AES B、DESC、DSAD、RSAE、3DESF、TDEAG、BlowfishH、RC5I、IDEAJ、ECC 解析:对称加密算法有AES、DES、3DES、TDEA、Blowfish、RC5、IDEA 非对称加密算法有DSA、ECC、RSA
  • 对称加密对称加密指的就是加密和解密使用同一个秘钥,所以叫做对称加密对称加密只有一个秘钥,作为私钥。具体算法有:DES,3DES,TDEA,Blowfish,RC5,ID...
  • 非对称加密,与对称加密的算法是有所不同的,非对称加密算法需要两个密钥,即公开密钥和私有密钥,非对称加密算法在加密和解密过程使用了不同的密钥,非对称密钥也称为公钥加密,在密钥对中,其中一个密钥是对外公开...
  • DES(Data Encryption Standard)是发明最早的最广泛使用的分组对称加密算法。DES算法的入口参数有三个:Key、Data、Mode。其中Key为8个字节共64位,是DES算法的工作密钥;Data是要被加密或被解密的数据;Mode为DES...
  • 包含消息摘要算法和对称加密算法的代码及应用总结
  • 对称加密算法

    2018-01-29 21:00:34
    对称加密算法又称为公开秘钥加密算法,它需要两个秘钥,一个称为公开秘钥,即公钥。一个称为私有秘钥,即私钥。公钥和私钥需要配对使用,如果用公钥对数据进行加密,只有用对应的私钥才能进行解密,而如果使用私钥...
  • 对称加密算法:双方必须约定好算法  DES 数据加密标准:由于不断地被破解 自98年起就已经逐渐放弃使用  AES 目前使用最多的加密方式,官方并未公布加密方式已被破解,替代DES  实现和DES非常接近 JDK无政策...
  • 一、对称加密算法:常用的算法包括DES、3DES、AES、DESX、Blowfish、、RC4、RC5、RC6。 二、非对称加密算法:常见的非对称加密算法:RSA、DSA(数字签名用)、ECC(移动设备用)、Diffie-Hellman、El Gamal。 三、...
  • 公钥和私钥, 以及RSA加密算法的关系. 说的就是你Charles模拟Https请求抓包(这个以后再说吧). 本次讲知识点一扫而空. 本文主要包括知识点为: 对称加密和非对称加密 公钥和私钥及数据发送 数字签名 数字证书 对称...
  • 对称加密算法 对称加密算法,也叫做私钥加密算法,也叫做单密钥算法或传统密钥算法,它具有如下特点: 加密和解密的密钥相同 计算效率高,加密强度高 需要提前共享密钥,容易泄露 常见的对称加密算法 AES...
  • 加密算法–DES对称加密算法详解 DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法,1977年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),并授权在非密级政府通信中...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 47,419
精华内容 18,967
关键字:

对称加密算法包括