常见的加解密(广义)算法

in 安全后端 with 0 comment

常见的加解密(广义)算法

HASH(哈希,散列,摘要)算法

一些特点
常见算法

md5,sha1,sha256,sha512,crc32

PHP支持的HASH算法

PHP中的hash

用途

对称加密(Symmetric-Key Cryptography)

双方使用同样的密钥(key)进行加密(encrypt)和解密(decrypt)。

常见

特点:DES是一种将64bit的明文加密成64bit的密文的对称密码算法,它的密钥长度是64bit(每隔7bit会设置一个用于错误检查的bit,因此实际使用密钥长度56bit);分组加密,DES每次只能加密64比特的数据。

密钥:128bit、192bit、256bit。

phpseclib
print_r(openssl_get_cipher_methods(1));

ECB模式,全称Electronic CodeBook mode,电子密码本模式。

var_dump(openssl_encrypt('private data', 'aes-128-ecb', 'secret'))

openssl_encrypt

不对称加密(Public-Key Cryptography)

顾名思义,加密解密使用不同的密钥;

特点

常见

(Ron Rivest, Adi Shamir, and Leonard Adleman)

是第一个能同时用于加密和数字签名的算法,也易于理解和操作。RSA是被研究得最广泛的公钥算法,从提出到现今的三十多年里,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。

RSA算法基于一个十分简单的数论事实:将两个大质数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。

全称为Elliptic Curves Cryptography,也叫椭圆曲线加密算法,是一种公钥加密体制,最初由Koblitz和Miller两人于1985年提出,其数学基础是利用椭圆曲线上的有理点构成Abel加法群上椭圆离散对数的计算困难性。

命令行openssl:openssl genrsa -out private.pem 2048;openssl rsa -in private.pem -pubout -out public.pem

工具:xshell

openssl_public_decrypt

openssl_public_encrypt

openssl_private_decrypt

openssl_private_encrypt

  1. 银行业广泛使用,U盾
  2. SSL证书,服务端存的是私钥,CSR(包含公钥) 文件要提交给证书颁发机构
  3. SSH
  4. API接口,对外接口,公钥的交换比较安全
  5. 通信,点对点加密等
  6. 签名
  7. 投票
  8. 。。。

讨论的问题

  1. encode,decode,比方说base64算不算加解密?
Comments are closed.