DES加密解密kotlin版
kotlin版本的DES加密和解密代码
需要注意中文加密后会乱码所以需要用Base64解码
直接用java8的Base64就行
话不多说直接上代码
kotlin版本–1.4.21
java版本–java8
gradle包–gradle-6.7-bin.zip
object DESCrypt{
//des加密
fun encrypt(original:String,password:String): String {
//创建cipher对象
val cipher = Cipher.getInstance("DES")
//初始化cipher(参数:加密/解密模式)
val kf = SecretKeyFactory.getInstance("DES")
val keySpec = DESKeySpec(password.toByteArray())
val key: Key = kf.generateSecret(keySpec)
cipher.init(Cipher.ENCRYPT_MODE,key)
//加密/解密
val encrypt = cipher.doFinal(input.toByteArray())
//base64加密
return String(Base64.getEncoder().encode(encrypt))
}
//des解密,这里的original指的是加密后的原文
fun decrypt(original:String,password:String): String {
//创建cipher对象
val cipher = Cipher.getInstance("DES")
//初始化cipher(参数:加密/解密模式)
val kf = SecretKeyFactory.getInstance("DES")
val keySpec = DESKeySpec(password.toByteArray())
val key: Key = kf.generateSecret(keySpec)
cipher.init(Cipher.DECRYPT_MODE,key)
//base64解码
val encrypt = cipher.doFinal(Base64.getDecoder().decode(input))
return String(encrypt)
}
}
fun main(args: Array<String>) {
val original= "DES加密解密测试"//需要加密的内容
val password = "12345678"//最少8位
val encrypt = DESCrypt.encrypt(original,password)
println("des加密结果:"+encrypt)
val decrypt = DESCrypt.decrypt(encrypt, password)
println("des解密结果:"+decrypt)
}
有错误的地方可以评论指出
共同学习
谢谢