非对称加密
针对加密方式划分为 对称加密和非对称加密
对称加密:使用唯一秘钥对数据进行加解密,其主要特点为速度快、使用方便、适合对大数据量进行加解密操作;主要缺点也比较明显,需要事先约定秘钥,当双方通信时就涉及到该秘钥的交换,存在被截获风险。
Aes算法:将数据划分为区块,每个区块128位,计算过程将其固定在4*4矩阵内,矩阵中的每一个元素为1Byte,加密密钥可以为 128,192,256位,之后具体运算过程涉及 XOR 运算、查找表非线性替换函数替换字节、对行列做位移处理等,生成加密数据
golang 操作实现:
func aesDecode(private [32]byte, data *[]byte) ERROR {
var key []byte
key = make([]byte, 32)
copy(key[:], private[:32])
block, err := aes.NewCipher(key)
if err != nil {
return fmt.Errorf("aesEncode Error: %v", err)
}
stream := cipher.NewCFBDecrypter(block, private[:block.BlockSize()])
stream.XORKeyStream(*data, *data)
return nil
}
func aesEncode(private [32]byte, data *[]byte) error {
var key []byte
key = make([]byte, 32)
copy(key[:], private[:32])
block, err := aes.NewCipher(key)
if err != nil {
return fmt.Errorf("aesEncode Error: %v", err)
}
stream := cipher.NewCFBEncrypter(block, private[:block.BlockSize()])
stream.XORKeyStream(*data, *data)
return nil
}
非对称加密: 主要特点拥有一组密钥对,公钥+私钥,私钥个人拥有,公钥可公开广播,数据使用公钥和公开算法对数据进行加密后,私钥可通过公开算法解密数据。
代表算法:RSA 、ECC
RSA 实行的是大数分解问题
ECC 椭圆曲线算法
算法的目的为增加逆向推导的难度,ECC椭圆曲线算法主要将计算域迁移到了椭圆上,涉及到的数学知识为 椭圆求和,几何定义在象限中的表现为 两点的和等于两点的连线与曲线的交点对x轴对称的镜像点
非对称秘钥算法可用于 数字签名和非对称加密
ed25519 签名算法
curv25519 可实现非对称加密,但非对称加密通常不用来做为数据加密算法,而是用来提供对称秘钥的秘钥交换安全算法,其使用方法可以为
1、明文——aes算法加密———>密文
2、秘钥使用非对称加密算法交换
aes秘钥选取 curv25519(A秘钥,B公钥)=Aes秘钥=curv25519(B秘钥,A公钥)
golang实现:
"golang.org/x/crypto/curve25519"
ScalarMult(dst, in, base *[32]byte)
文章最后发布于: 2018-10-02 14:16:23
相关阅读
18位md5加密算法解密方法解 adminpwd=Mid(md5(adminpw
有时候会遇到18位md5,目前出自老Y文章管理系统。目前出现太多的变异MD5值,大多数都是生成32位来截取第几位到第几位。老Y文章管理系
一般挂马者都喜欢找图片站,电影站,网址站等娱乐性站点...如果你技术又不太行,而又不想挂马,那要怎么样来识别挂马者呢?(当然,想挣
工具类如下:import java.security.MessageDigest; /** * @Author:Starry * @Description: * @Date:Created in 9:46 2018/4/13
一、对称加密算法 指加密和解密使用相同密钥的加密算法。对称加密算法用来对敏感数据等信息进行加密,常用的算法包括DES、
在Excel中有很多重要的数据前期需要加上密码保护,但到后期却已经不再重要需要取消加密保护,下面是seo实验室小编带来的关于excel 20