java加密工作模式None_Java-加密篇

相关概念

加密

将明文(通过要先转换成byte[])通过特定的变换得到密文,目前常用的加密算法包括 对称加密的AES/DES,非对称加密的RSA/DSA/EC,加密很重要的一点就是解密,无论多复杂的数学变换,一定可以通过相应的逆变换得到原始输入(密文到明文),这是的加密行为才有意义。

hash(哈希变换)

hash值又称散列值或者消息摘要,对输入的字符串或者二进制序列通过一定的变换得到固定长度的输出。常用的hash变换有MD5/SHA1/HmacSHA1/HmacMD5....等,hash变换的目的并不是让输入不可读取,而是让输入不可改变(改变即可发现)。

字节变换

将不易读取或者不易传输的数据(通用是二进制数据byte)转成易读取或者易传输的字符串(String),常用的字节变换操作有Base64,UrlEncoder。

相关api介绍

Cipher

主要用于加密行为,如进行AES/DES/RSA等加密行为。主要API有以下4步:

初始化对象static Cipher getInstance(String transformation)

transformation的组成可以概括为algorithm/mode/padding 即:加密的方式/变换模式/字节填充规则。常用有以下组合:

//括号数值为所需秘钥的长度

AES/CBC/NoPadding (128)

AES/CBC/PKCS5Padding (128)

AES/ECB/NoPadding (128)

AES/ECB/PKCS5Padding (128)

DES/CBC/NoPadding (56)

DES/CBC/PKCS5Padding (56)

DES/ECB/NoPadding (56)

DES/ECB/PKCS5Padding (56)

DESede/CBC/NoPadding (168)

DESede/CBC/PKCS5Padding (168)

DESede/ECB/NoPadding (168)

DESede/ECB/PKCS5Padding (168)

RSA/ECB/PKCS1Padding (1024, 2048)

RSA/ECB/OAEPWithSHA-1AndMGF1Padding (1024, 2048)

RSA/ECB/OAEPWithSHA-256AndMGF1Padding (1024, 2048)

初始化参数void init(int opmode, Key key)

opmode用于指定该对象是要进行加密还是解密,key`是加密所用的秘钥信息。

加密方法byte[] doFinal(byte[] input)

Signature

signature类用于提供数字签名,用于保证数据的完整性。

获取方法:Signature signature = Signature.getInstance(algorithm),algorithm是数字签名算法,常用的算法有:

NONEwithRSA

MD2withRSA

MD5withRSA

SHA1withRSA

SHA224withRSA

SHA256withRSA

SHA384withRSA

SHA512withRSA

NONEwithDSA

SHA1withDSA

SHA224withDSA

SHA256withDSA

NONEwithECDSA

SHA1withECDSA

SHA224withECDSA

SHA256withECDSA

SHA384withECDSA

SHA512withECDSA

MessageDigest

MessageDigest`主要是做hash变换(也称消息摘要或者散列值)

常用方法:

// 参数可以是 MD5,MD2,MD5,SHA-1,SHA-224,SHA-256,SHA-384,SHA-512

MessageDigest messageDigest = MessageDigest.getInstance("MD5");

byte[] bytes = messageDigest.digest("helloworld".getBytes());

//将二进制数组转成base64字符串输出

System.out.println("MD5哈希变换:" + byte2Base64(bytes));

KeyGenerator

用于生成秘钥, KeyGenerator.getInstance(String algorithm)支持的参数有:

AES (128)

DES (56)

DESede (168)

HmacSHA1

HmacSHA256

KeyPairGenerator

KeyPairGenerator用于生成一对密钥对,用于做非对称加密操作。KeyPairGenerator.getInstance(String alorithm)的可用参数为:

DSA

RSA

EC

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值