自学内容网 自学内容网

hash sha rsa

1)hash 算法 计算结果长度 MD5 16字节 SHA1 20字节 SHA224 28字节 SHA256 32字节 SHA384 48字节 SHA512 64字节 算法不可逆。也就是说,不能通过 哈希值 反过来计算出 源数据。 所以哈希和我们常说的加密解密不同。 2)AES对称加解密 AES-128 16bytes AES-192 AES-256 之所以是对称加密,指的是这里加密和解密用的是一个秘钥key,秘钥key是双方约定的,并对第三方是绝对保密的,如果秘钥key泄露了,或者拥有秘钥key的人作恶了,就不安全了。对称加密的速度比较快。 3)RSA - 公钥加密,私钥解密 具体步骤: 主要的流程是通过openssl等工具生成一对公私钥对,图中public key 就是生成的公钥,private key 就是生成的私钥,公钥可以公开给任何人,私钥是自己绝对保密。plaintext是明文,ciphertext是密文,encryption是加密操作,decryption是解密操作,具体步骤: 明文(plaintext)通过公钥进行加密加密操作获得一个密文(ciphertext) 密文(ciphertext)通过私钥解密再解密成明文(plaintext) 注意: 加密只能用公钥,解密只能用私钥,不要问为什么,这是被数学证明过的。 4) RSA - 私钥加密,公钥解密 通过非对称加密(RSA)的私钥对数据进行加密,然后通过公钥对应的私钥对数据进行解密,为了证明加密着的身份,用于身份确认, 如:银行发的U盾,证书。 PKCS5Padding到底是什么? 为什么 JAVA 里指定算法时,写的是 AES/CBC/PKCS5Padding,每个都是什么含义,又有什么作用。 AES,加解密算法 CBC,数据分组模式 PKCS5Padding,数据按照一定的大小进行分组,最后分剩下那一组,不够长度,就需要进行补齐, 也可以叫 补齐模式 简单的说:拿到一个原始数据以后,首先需要对数据进行分组,分组以后如果长度不满足分组条件,需要进行补齐,最后形成多个分组,在使用加解密算法,对这多个分组进行加解密。所以这个过程中,AES,CBC,PKCS5Padding 缺一不可。 在对数据进行加解密时,通常将数据按照固定的大小(block size)分成多个组,那么随之就产生了一个问题,如果分到最后一组,不够一个 block size 了,要怎么办?此时就需要进行补齐操作。 补齐规则:The value of each added byte is the number of bytes that are added, i.e. N bytes, each of value N are added. 举例: 36 字节的 UUID,如果按照 block size=16 字节(即 128 比特),那么就需要补齐到 48 字节,差 12 个字节。那么最后填充的 12 个字节的内容,都是字节表示的 0x0c(即 12)。 ECB(Electronic Codebook,电码本)模式是分组密码的一种最基本的工作模式。在该模式下,待处理信息被分为大小合适的分组,然后分别对每一分组独立进行加密或解密处理。 “CBC指的是密码分组链接(Cipher-block chaining)的简称。1976年,IBM发明了密码分组链接(CBC,Cipher-block chaining)模式。在CBC模式中,每个明文块先与前一个密文块进行异或后,再进行加密。在这种方法中,每个密文块都依赖于它前面的所有明文块。同时,为了保证每条消息的唯一性,在第一个块中需要使用初始化向量。 ————————————————


原文地址:https://blog.csdn.net/hao95165/article/details/142789216

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!