有没有人有利弊比较这些encryptionalgorithm?
我目前正在研究一个function,用一个密钥encryption/解密一个特定的文件。 我写了三个类,一个是生成一个密钥,一个是用密钥encryption文件,另一个是解密文件。 生成密钥和encryption文件工作正常,但是当我尝试解密文件时,会引发一个exception: c.init(Cipher.DECRYPT_MODE, keySpec); : java.security.InvalidKeyException:缺less参数 我把它解密时,我已经做了一些错误,当解密文件时,将密钥stream到我的byte[]或者是错误的。 快速解释三个类:KeyHandler创build一个AES密钥并将其存储在硬盘上。 为了testing目的,密钥/明文/encryption/解密文件的名称目前被硬编码。 EncryptionHandler将磁盘上的.txt文件转换为字节,使用密钥encryption文件,然后使用CipherOutputStream将encryption的字节写入磁盘。 DecryptionHandler当然和EncryptionHandler相反。 代码如下: public class KeyHandler { Scanner scan = new Scanner(System.in); public KeyHandler(){ try { startMenu(); } catch (Exception e) { System.out.println("fel någonstanns :)"); } } public void startMenu() throws Exception{ System.out.println("Hej. Med detta program kan du generera en hemlig nyckel"+"\n"+"Vill du:"+"\n"+ "1. Generera […]
我正在寻找一些AESencryptioncocoa代码,我做了一些谷歌search。 我发现这个非常有用的链接 – http://iphonedevelopment.blogspot.com/2009/02/strong-encryption-for-cocoa-cocoa-touch.html 。 所以我试了一下,但是这对我没有用。 任何人都可以build议我一些有用的链接或源代码,可以帮助我在我的示例应用程序中实现它。
我是一个完全新手这种encryption的东西,但我有一个Java应用程序和一个iOS,我希望他们都能够将文本ecrypt相同的结果。 我使用AES。 我发现这些代码,当然有一些修改,但是它们会返回不同的结果 iOS代码: – (NSData *)AESEncryptionWithKey:(NSString *)key { unsigned char keyPtr[kCCKeySizeAES128] = { 'T', 'h', 'e', 'B', 'e', 's', 't', 'S', 'e', 'c', 'r','e', 't', 'K', 'e', 'y' }; size_t bufferSize = 16; void *buffer = malloc(bufferSize); size_t numBytesEncrypted = 0; const char iv2[16] = { 65, 1, 2, 23, 4, 5, 6, 7, […]
由于某些原因,我需要实现Rijndael de / compression(块大小为256位),而不是使用128位块大小的AES(原因是:数据在PHP中使用Rijndaelencryption)。 我怎样才能改变一个密码的块大小? 如果我刚刚得到一个带有"RIJNDAEL/CFB/PKCS5Padding"的密码并试图用256位初始化一个IV,我得到一个exception,因为块大小只有128位。
我已经编写了用于AES解密的代码,但没有任何成功。 我的AES阿尔戈课是在这里。 http://pastebin.com/QtpFnW84和实现是: String Masterkey = "eX0XcsF8lkeX0XcsF8lkeX0XcsF8lkeX0XcsF8lkeX0XcsF8lk"; try { String s = AES_Algo .decrypt( Masterkey, "LVmDIcmVIuNVPObjLXkVbFc13NCX1Md3DjrvfiioMQHS7QmizT3dlSujgA7NS0zI HEweRWGcwOKpu0wurK495yCTWkJO33X1n+at60xLdJ7ZUreRWN9RatUjRQuLI7Ft kwH7QMTQAYXQizGJ0HrArja8QA/YnkiGpgO0pdmYm9Mb6g/sIXhz1Oeo42uwzTM1 F+t6AM/qrH9ZMozlctU6LQQVIggP8zzmnwvjNCyyYJCsXedOEMcvrpQV100gz+pf cE4RisPgN0IOKzvzepJ88E3VMPCXBv/AV4Z2/fuBcmimzGdvZwKgYM/39TGNBS7t T491knA3ZdMoAnSPFvdM4khfRyM5I9FJpwDxmpykA4VpBUhyd4p+ZS1ZSQ8Zwi3I 5egtoNkSJhI6pjAR7PbzJtJ+VAWCVIdsFP4Kc+KKPBE0HVS5UiQQ+OJjx2r9iMMR OYqeyqMv8xw3Wy7TBMiKnQMCRo5+K1mDabx164+6cfoKk8+6b5WlNfBQVobZpQs2"); Log.e("s", s); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } 每当我收到exception: 06-13 05:03:43.013: W/System.err(1757): java.lang.NumberFormatException: unable to parse 'LV' as integer 06-13 05:03:43.043: W/System.err(1757): at java.lang.Integer.parse(Integer.java:433) 06-13 05:03:43.043: […]
我需要encryptioniPhone上的一个string,并将其发送到.Net Web服务进行解密。 我可以在iPhone上和.Net上encryption/解密,但是来自iPhone的encryptionstring不能被.Net解密。 我得到的错误是“填充无效,无法删除”。 .Net代码来自: http : //blog.realcoderscoding.com/index.php/2008/07/dot-net-encryption-simple-aes-wrapper/ iPhone代码使用以下示例代码: http : //nootech.wordpress.com/2009/01/17/symmetric-encryption-with-the-iphone-sdk/ AFAIK我的密钥设置是一样的: result.BlockSize = 128; // iPhone: kCCBlockSizeAES128 result.KeySize = 128; // kCCBlockSizeAES128 result.Mode = CipherMode.CBC; result.Padding = PaddingMode.PKCS7; // kCCOptionPKCS7Padding 我尝试了不同的方式来生成密文。 你好/你好: 在.Net中的e0PnmbTg / 3cT3W + 92CDw1Q == yrKe5Z7p7MNqx9 + CbBvNqQ ==在iPhone上 和“openssl enc -aes-128-cbc -nosalt -a -in hello.txt -pass pass:hello”生成:QA + UI […]
有很多方法使用AES,导致不同实现之间频繁的不兼容。 OpenSSL为AESencryption/解密提供了一个stream行的(但不安全 – 见下文!)命令行界面: openssl aes-256-cbc -salt -in filename -out filename.enc openssl aes-256-cbc -d -in filename.enc -out filename Python以PyCrypto包的forms支持AES,但它只提供工具。 如何使用Python / PyCrypto来encryption文件,使用OpenSSL来解密文件,解密使用OpenSSLencryption的文件? 警告 这个encryptionscheme不好。 它不提供充分的安全性。 不要使用它,除非你绝对需要向后兼容。
我想从SD卡encryption图像,并使用AES再次将其存储在SD卡中。 主要思想是应用程序浏览图像,然后按下button时将其encryption,然后将其存储在SD卡中。 所以我的形象将是安全的。 我已经成功地使用AES从本教程http://www.androidsnippets.com/encryptdecrypt-strings做stringencryption,但我不知道如何做到这一点的图像,而不是string。 这是我如何用一个string: public static String encrypt(String seed, String cleartext) throws Exception { byte[] rawKey = getRawKey(seed.getBytes()); byte[] result = encrypt(rawKey, cleartext.getBytes()); return toHex(result); } private static byte[] encrypt(byte[] raw, byte[] clear) throws Exception { SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES"); Cipher cipher = Cipher.getInstance("AES"); cipher.init(Cipher.ENCRYPT_MODE, skeySpec); byte[] encrypted = cipher.doFinal(clear); return encrypted; […]
我有一个硬编码的密钥,我想先encryption一个string,然后将其存储在SharedPreferences 。 这是迄今为止的代码: public class TokenEncryptor { private final static String TOKEN_KEY = "91a29fa7w46d8x41"; public static String encrypt(String plain) { try { Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); AlgorithmParameterSpec ivSpec = new IvParameterSpec(new byte[16]); SecretKeySpec newKey = new SecretKeySpec(TOKEN_KEY.getBytes(), "AES"); cipher.init(Cipher.ENCRYPT_MODE, newKey, ivSpec); return new String(cipher.doFinal(plain.getBytes())); } catch (Exception e) { Ln.e(e); return null; } } public […]