DES加密解密kotlin版
阿新 • • 發佈:2021-01-14
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)
}
有錯誤的地方可以評論指出
共同學習
謝謝