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)

}

有错误的地方可以评论指出
共同学习
谢谢

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值