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

}

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