1,数字签名的签名是2种算法的组合(非对称和hash算法),有时也会对明文进行对称加密 package com.wel.crypt import java.security.PrivateKey import java.security.PublicKey import java.security.Signature object SignatureCrypt{//sha256 with RSA //签名过程:1,对明文进行hash算法(如sha256,sha1,md5),接着对消息摘要用公钥进行非对称加密(如DSA,RSA)生成签名 //2,由1生成的签名+明文(有些会把明文用对称算法加密如AES,DES) fun sign(input:String,privateKey: PrivateKey):String{ // var hash= MessageDigetUtil.sha256Encode(input) // var rsa=RSACrypt.encodeByPrivateKey(hash,privateKey) val signature = Signature.getInstance("SHA256withRSA") signature.initSign(privateKey) signature.update(input.toByteArray()) return Base64.encode(signature.sign()) } //verify fun verify(input: String,sign:String,publicKey: PublicKey):Boolean{ val signature=Signature.getInstance("SHA256withRSA") signature
kotlin 数字签名
最新推荐文章于 2022-11-21 09:00:11 发布