DES加密算法(对称加密)

对称加密算法

常见的算法

1.DES : Data Encryption standard

2.AES : Advanced Encryption standard

自己可以指定密钥,用密钥就可以破解了

也就是 加密和解密是互逆的

底层的原理一般是操作二进制

下面是 DES加密解密算法的 API ,因为用UTF-8编码,会报错,因此必须是用 Base64编码一下

import java.security.Key
import java.util.*
import javax.crypto.Cipher
import javax.crypto.SecretKeyFactory
import javax.crypto.spec.DESKeySpec

/**
 * @Author  lyr
 * @create 2020/6/29 19:49
 */
fun main() {
    val util = DESCrypt()
    val result = (util.encrypt("hello world"))
    println(result)
    println(util.decrypt((result)))
}

class DESCrypt {

    private val password = "12345677"
    fun encrypt(yourWords: String): String {
        val cipher = Cipher.getInstance("DES")
        val kf = SecretKeyFactory.getInstance("DES")
        val keySpec = DESKeySpec(password.toByteArray())
        val key: Key? = kf.generateSecret(keySpec)
        cipher.init(Cipher.ENCRYPT_MODE, key)
        val s = cipher.doFinal(yourWords.toByteArray())
        return Base64.getEncoder().encodeToString(s)
    }

    fun decrypt(cryptograph: String): String? {
        val cipher = Cipher.getInstance("DES")
        val kfactory = SecretKeyFactory.getInstance("DES")
        val keySpec = DESKeySpec(password.toByteArray())
        val key: Key? = kfactory.generateSecret(keySpec)
        cipher.init(Cipher.DECRYPT_MODE, key)
        val res = (cipher.doFinal(Base64.getDecoder().decode(cryptograph)))
        return String(res)
    }

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章