安卓3DES加解密(kotlin)

import android.util.Base64
import java.security.SecureRandom
import javax.crypto.Cipher
import javax.crypto.SecretKeyFactory
import javax.crypto.spec.DESedeKeySpec

/**
 * 描述:3DES加密
 * 创建人:菜籽
 * 创建时间:2017/12/19 下午2:24
 * 备注:
 */
object ThreeDESUtil {

    val DES_FLAG = "DESede"                     // 3DES
    val ENCODE_MODE = Cipher.ENCRYPT_MODE       // 加密模式
    val DECODE_MODE = Cipher.DECRYPT_MODE       // 解密模式

    val PASSWORD = "6C4E60E55552386C759569836DC0F83869836DC0F838C0F7"

    private fun desEncypt(mode: Int, password: String, content: ByteArray): ByteArray {
        val cipher = Cipher.getInstance(DES_FLAG)
        val factory = SecretKeyFactory.getInstance(DES_FLAG)
        val spec = DESedeKeySpec(password.toByteArray())
        val key = factory.generateSecret(spec)
        cipher.init(mode, key, SecureRandom())
        return cipher.doFinal()
    }

    fun enCode(password: String, message: String): String {
        val bytes = message.toByteArray()
        val desEncypt = desEncypt(ENCODE_MODE, password, bytes)
        val encode = Base64.encode(desEncypt, Base64.DEFAULT)
        return String(encode)
    }

    fun deCode(password: String,message: String):String{
        val bytes = message.toByteArray()
        val desEncypt = desEncypt(DECODE_MODE, password, bytes)
        val decode = Base64.decode(bytes, Base64.DEFAULT)
        return String(decode)
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值