各方面加密
对称密钥加密
对称密钥加密 Symmetric Key Algorithm 又称为对称加密、私钥加密、共享密钥加密:这类算法在加密和解密时使用相同的密钥,或是使用两个可以简单的相互推算的密钥,对称加密的速度一般都很快。
分组密码
DES、3DES
AES
ECC
数字签名
分组密码 Block Cipher 又称为“分块加密”或“块加密”,将明文分成多个等长的模块,使用确定的算法和对称密钥对每组分别加密解密。这也就意味着分组密码的一个优点在于可以实现同步加密,因为各分组间可以相对独立。
与此相对应的是流密码:利用密钥由密钥流发生器产生密钥流,对明文串进行加密。与分组密码的不同之处在于加密输出的结果不仅与单独明文相关,而是与一组明文相关。
数据加密标准 DES Data Encryption Standard 是由IBM在美国国家安全局NSA授权下研制的一种使用56位密钥的分组密码算法,并于1977年被美国国家标准局NBS公布成为美国商用加密标准。但是因为DES固定的密钥长度,渐渐不再符合在开放式网络中的安全要求,已经于1998年被移出商用加密标准,被更安全的AES标准替代。
DES使用的Feistel Network网络属于对称的密码结构,对信息的加密和解密的过程极为相似或趋同,使得相应的编码量和线路传输的要求也减半。
DES是块加密算法,将消息分成64位,即16个十六进制数为一组进行加密,加密后返回相同大小的密码块,这样,从数学上来说,64位0或1组合,就有2^64种可能排列。DES密钥的长度同样为64位,但在加密算法中,每逢第8位,相应位会被用于奇偶校验而被算法丢弃,所以DES的密钥强度实为56位。
3DES Triple DES,使用不同Key重复三次DES加密,加密强度更高,当然速度也就相应的降低。
高级加密标准 AES Advanced Encryption Standard 为新一代数据加密标准,速度快,安全级别高。由美国国家标准技术研究所NIST选取Rijndael于2000年成为新一代的数据加密标准。
AES的区块长度固定为128位,密钥长度可以是128位、192位或256位。AES算法基于Substitution Permutation Network代换置列网络,将明文块和密钥块作为输入,并通过交错的若干轮代换"Substitution"和置换"Permutation"操作产生密文块。
AES加密过程是在一个4*4的字节矩阵(或称为体State)上运作,初始值为一个明文区块,其中一个元素大小就是明文区块中的一个Byte,加密时,基本上各轮加密循环均包含这四个步骤:
ECC即 Elliptic Curve Cryptography 椭圆曲线密码学,是基于椭圆曲线数学建立公开密钥加密的算法。ECC的主要优势是在提供相当的安全等级情况下,密钥长度更小。
ECC的原理是根据有限域上的椭圆曲线上的点群中的离散对数问题ECDLP,而ECDLP是比因式分解问题更难的问题,是指数级的难度。而ECDLP定义为:给定素数p和椭圆曲线E,对Q=kP,在已知P,Q 的情况下求出小于p的正整数k。可以证明由k和P计算Q比较容易,而由Q和P计算k则比较困难。
数字签名 Digital Signature 又称公钥数字签名是一种用来确保数字消息或文档真实性的数学方案。一个有效的数字签名需要给接收者充足的理由来信任消息的可靠来源,而发送者也无法否认这个签名,并且这个消息在传输过程中确保没有发生变动。
数字签名的原理在于利用公钥加密技术,签名者将消息用私钥加密,然后公布公钥,验证者就使用这个公钥将加密信息解密并对比消息。一般而言,会使用消息的散列值来作为签名对象。
2. 对称加密算法的加密算法主要有哪些
1、3DES算法
3DES(即Triple DES)是DES向AES过渡的加密算法(1999年,NIST将3-DES指定为过渡的加密标准),加密算法,其具体实现如下:设Ek()和Dk()代表DES算法的加密和解密过程,K代表DES算法使用的密钥,M代表明文,C代表密文,这样:
3DES加密过程为:C=Ek3(Dk2(Ek1(M)))
3DES解密过程为:M=Dk1(EK2(Dk3(C)))
2、Blowfish算法
BlowFish算法用来加密64Bit长度的字符串。
BlowFish算法使用两个“盒”——unsignedlongpbox[18]和unsignedlongsbox[4,256]。
BlowFish算法中,有一个核心加密函数:BF_En(后文详细介绍)。该函数输入64位信息,运算后,以64位密文的形式输出。用BlowFish算法加密信息,需要两个过程:密钥预处理和信息加密。
分别说明如下:
密钥预处理:
BlowFish算法的源密钥——pbox和sbox是固定的。我们要加密一个信息,需要自己选择一个key,用这个key对pbox和sbox进行变换,得到下一步信息加密所要用的key_pbox和key_sbox。具体的变化算法如下:
1)用sbox填充key_sbox
2)用自己选择的key8个一组地去异或pbox,用异或的结果填充key_pbox。key可以循环使用。
比如说:选的key是"abcdefghijklmn"。则异或过程为:
key_pbox[0]=pbox[0]abcdefgh;
key_pbox[1]=pbox[1]ijklmnab;
…………
…………
如此循环,直到key_pbox填充完毕。
3)用BF_En加密一个全0的64位信息,用输出的结果替换key_pbox[0]和key_pbox[1],i=0;
4)用BF_En加密替换后的key_pbox,key_pbox[i+1],用输出替代key_pbox[i+2]和key_pbox[i+3];
5)i+2,继续第4步,直到key_pbox全部被替换;
6)用key_pbox[16]和key_pbox[17]做首次输入(相当于上面的全0的输入),用类似的方法,替换key_sbox信息加密。
信息加密就是用函数把待加密信息x分成32位的两部分:xL,xRBF_En对输入信息进行变换。
3、RC5算法
RC5是种比较新的算法,Rivest设计了RC5的一种特殊的实现方式,因此RC5算法有一个面向字的结构:RC5-w/r/b,这里w是字长其值可以是16、32或64对于不同的字长明文和密文块的分组长度为2w位,r是加密轮数,b是密钥字节长度。
(2)各方面加密扩展阅读:
普遍而言,有3个独立密钥的3DES(密钥选项1)的密钥长度为168位(三个56位的DES密钥),但由于中途相遇攻击,它的有效安全性仅为112位。密钥选项2将密钥长度缩短到了112位,但该选项对特定的选择明文攻击和已知明文攻击的强度较弱,因此NIST认定它只有80位的安全性。
对密钥选项1的已知最佳攻击需要约2组已知明文,2部,2次DES加密以及2位内存(该论文提到了时间和内存的其它分配方案)。
这在现在是不现实的,因此NIST认为密钥选项1可以使用到2030年。若攻击者试图在一些可能的(而不是全部的)密钥中找到正确的,有一种在内存效率上较高的攻击方法可以用每个密钥对应的少数选择明文和约2次加密操作找到2个目标密钥中的一个。
3. 记录一下前端使用CryptoJS的几种加密方式
自己太小白了,之前在PC端项目中使用的MD5加密,现在的小程序项目使用了 CryptoJS 里面的 enc-base64 和 hmac-sha1 ,之前没有用到过这两种,所以比较疑惑,为何在小程序不继续使用 MD5 呢?所以在这里记录一下自己解疑惑的一些知识点。
随着互联网的兴起,我们对信息的安全越来越受重视,这样就导致在web开发中,对用户密码等各种加密变得更加重要了。与服务器的交互中,为了确保数据传输的安全性,避免被黑客抓包篡改。
对于Base64编码的,我觉得看一篇文章能够解决你的疑惑,我在这里就不赘述了
🧐 Base64编码原理
如: 用户密码,请求参数,文件加密
如: 接口参数签名验证服务
支付数据、CA数字证书
前端的朋友可能会关注前端js加密,我们在做 WEB 的登录功能时一般是通过 Form 提交或 Ajax 方式提交到服务器进行验证的。为了防止抓包,登录密码肯定要先进行一次加密(RSA),再提交到服务器进行验证。一些大公司都在使用,比如淘宝、京东、新浪 等。
前端加密也有很多现成的js库,如:
JS-RSA: 用于执行OpenSSL RSA加密、解密和密钥生成的Javascript库, https://github.com/travist/jsencrypt
MD5: 单向散列加密md5 js库, https://github.com/blueimp/JavaScript-MD5
crypto-js: 对称加密AES js库, https://github.com/brix/crypto-js
-CryptoJS (crypto.js) 为 JavaScript 提供了各种各样的加密算法。
HMAC 系列是消息验证,用于验证一个消息是否被篡改——如网站上传递 email 和 hmac(email),则接收时可以通过 hmac(email) 获知 email 是否是用户伪造的
4. 加密的两个主要功能
加密技术是当今信息安全领域中最重要的技术之一。它的主要作用有两个方面。
首先,加密技术可以保障数据的安全性。在数字化时代,各种类型的数据比比皆是,包括个人隐私、公司机密、政府机构的敏感信息等等。如果这些数据被未授权的人窃取或篡改,则会造成无法想象的后果。为了避免这种情况的发生,加密技术可以将数据转化为一串看似无规律的字符,从而防止黑客等第三方人员对数据的非法访问和篡改。通过对数据的加密,数据的机密性和完整性得到了保障。
其次,加密技术能够验证身份的真实性。在数字化时代,身份识别变得越来越重要。例如,互联网银行、电子商务等领域,需要用户进行身份识别,以保证交易的安全性。加密技术可以通过数字证书等手段,验证身份的真实性,保证交易的安全性。同时,加密技术还可以防止身份被冒用,从而减少非法交易的发生。
综上所述,加密技术在当今数字化时代中扮演着至关重要的角色。通过保障数据的安全性和验证身份的真实性,加密技术为各个领域的数字化发展提供了强有力的支持,为数字化经济的快速发展创造了良好的环境和条件。
5. 什么病毒利用各种加密算法对文件加密
勒索病毒可以利用各种加密算法对文件加密。
勒索病毒,是一种新型电脑病毒,主要以邮件、程序木马、网页挂马的形式进行传播。该病毒性质恶劣、危害极大,一旦感染将给用户带来无法估量的损失。
勒索病毒文件一旦被用户点击打开,会利用连接至黑客的C&C服务器,进而上传本机信息并下载加密公钥。然后,将加密公钥写入到注册表中,遍历本地所有磁盘中的Office文档、图片等文件,对这些文件进行格式篡改和加密,加密完成后,还会在桌面等明显位置生成勒索提示文件,指导用户去缴纳赎金。
该类型病毒可以导致重要文件无法读取,关键数据被损坏,给用户的正常工作带来了极为严重的影响。
勒索病毒的主要传播途径
1、恶意电子邮件附件:攻击者会发送带有恶意软件附件的电子邮件,当用户点击或下载附件时,恶意软件会被激活并感染用户的设备。
2、恶意链接:攻击者会通过电子邮件、社交媒体、即时消息等渠道发送包含恶意链接的信息。当用户点击这些链接时,恶意软件会被下载和执行。
3、漏洞利用:攻击者会利用操作系统、应用程序或浏览器的安全漏洞,通过网络传播恶意软件。当用户未及时更新补丁或安全软件时,容易受到攻击。
4、感染的网站和广告:攻击者会通过植入恶意代码的方式感染合法的网站,当用户访问这些网站时,恶意代码会被下载和执行。
5、受感染的可移动存储设备:攻击者会将恶意软件预先安装在可移动存储设备上,比如USB闪存驱动器。当用户插入这些设备时,恶意软件会被传输到用户的设备上。
以上内容参考网络-勒索病毒
6. 加密软件哪个好(推荐五款高效安全的加密软件)
加密软件哪个好?
我来给你推荐五个高效安全的加密软件!!!!
一、网管家
网管家加密是一种针对企业数据安全的解决方案,它能够对文件进行加密、解密、隐藏和伪装等操作,以保护企业的核心数据和商业机密。
二、中科安企软件
中科安企是一款内网专用的上网行为管理软件,在加密方面也有丰富的经验。它可以通过一台管理端电脑管控局域网内所有终端计算机,从源头上加密保护文件安全。
中科安企采用先进的加密技术,可以在不影响员工正常办公的前提下,主动对各种企业常用的文档类型进行加密。当员工在访问时文件会自动解密,但是未经授权即使文件被私自外发出去也无法被打开或者乱码,有效进行文件加密。
三、安企神
安企神是一款专业的文件加密软件,主要用于保护企业内部的敏感数据。它采用透明加密算法,可以自动、批量的对公司内部需要加密的文件进行加密。即使员工需要使用加密的文件,使用起来与未加密的文件也没有区别,不会影响员工的工作效率。
四、域智盾
域智盾是一款终端加密软件,主要用于企业文件和数据的加密。它支持透明加密和半透明加密两种方式,可以灵活地满足企业不同的加密需求。域智盾的加密强度高,采用最新的AES算法,具有唯一性,可以有效地保护企业文件和数据的安全。
除了强大的加密功能外,域智盾还具有简单易用的用户界面,可以方便地进行文件和数据的加密和解密操作。它还提供了权限管理功能,可以控制用户对文件的访问权限,防止未经授权的访问和数据泄露。
五、WinRAR
WinRAR加密是一种使用WinRAR软件进行文件加密的方法。
加密过程包括将源文件压缩,然后对压缩的数据段进行加密。对于同一个源文件来说,如果不进行加密,压缩完后的rar文件中的数据段是完全一样的。而如果对压缩完的数据段进行加密,即使别人获取了加密的文件,也无法解压或查看其中的内容。