Tag: 加密

解密在Android设备上加密的字符串

在Android 4.4设备上,使用spring-android-auth 1.0.1.RELEASE模块中的org.springframework.security.crypto.encrypt.AndroidEncryptors类对字符串进行了加密。 所以例如… // naturally, salt and password are normally different String salt = "75f4c92894b2f3e7"; String password = "password"; org.springframework.security.crypto.encrypt.TextEncryptor encryptor = org.springframework.security.crypto.encrypt.AndroidEncryptors.text(password, salt); String encryptedString = encryptor.encrypt("hello"); 在一次运行期间,encryptedString解析为“1ee3c42c9b986d30cd88da37f29bc3b9e93e3defdb76a2b23 72a47276152e2bd”。 然后将该字符串发布到运行在JDK 1.6.0_32上的tomcat 7服务器上的spring web应用程序(请注意JCE Unlimited Strength Jurisdiction策略文件已经安装)。 然后我尝试使用spring-security-crypto 3.2.0.RELEASE模块中的org.springframework.security.crypto.encrypt.Encryptors类来解密该字符串。 // naturally, the salt and password values used here are the same as the ones […]

Java / Kotlin使用私钥和公钥加密AES密钥

所以我最近看到一个来自computerphile的视频,他们说当使用加密时,你应该使用AES密钥并用公钥和私钥对这个密钥进行加密。 这意味着:我有一个别人的公钥和我自己的私钥。 使用你自己的私钥加密它的原因是,这验证了消息必须来自我,因为没有其他人拥有我的私钥,所以使用我的公钥加密只能处理来自我的消息。 问题是,我第一次加密后,字节数组outcomming变得太长,我不能再加密它。 有没有解决的办法? 这是我的代码: val aKey = generateAESKey() val kG = KeyPairGenerator.getInstance("RSA") kG.initialize(2048) val own = kG.genKeyPair() val strange = kG.genKeyPair() String(aKey.encoded).encryptRSA(strange.public).encryptRSA(own.public) fun generateAESKey(): Key { val generator = KeyGenerator.getInstance("AES") generator.init(128) return generator.generateKey() fun String.encryptRSA(key: Key): String { val encryptCipher = Cipher.getInstance("RSA/ECB/PKCS1Padding") encryptCipher.init(Cipher.ENCRYPT_MODE, key) val cipherText = encryptCipher.doFinal(this.toByteArray(charset("UTF- 8"))) return String(cipherText) } fun […]