1. 程式人生 > 其它 >DES加密解密kotlin版

DES加密解密kotlin版

技術標籤:kotlin加密解密kotlin加密解密

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) }

有錯誤的地方可以評論指出
共同學習
謝謝