本文共 1396 字,大约阅读时间需要 4 分钟。
常见的算法
1.DES : Data Encryption standard
2.AES : Advanced Encryption standard
自己可以指定密钥,用密钥就可以破解了
也就是 加密和解密是互逆的
底层的原理一般是操作二进制
下面是 DES加密解密算法的 API ,因为用UTF-8编码,会报错,因此必须是用 Base64编码一下
import java.security.Keyimport java.util.*import javax.crypto.Cipherimport javax.crypto.SecretKeyFactoryimport 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) }}
转载地址:http://xhuzi.baihongyu.com/