我需要一个PHP函数,AES256_encode($dataToEcrypt)
加密$data
到AES-256,另一个AES256_decode($encryptedData)
反过来.有谁知道这个函数应该有什么代码?
我想使用带有16字节密钥的128位AES加密来加密和解密密码.我javax.crypto.BadPaddingException
在解密值时遇到错误.在解密时我错过了什么吗?
public static void main(String args[]) {
Test t = new Test();
String encrypt = new String(t.encrypt("mypassword"));
System.out.println("decrypted value:" + t.decrypt("ThisIsASecretKey", encrypt));
}
public String encrypt(String value) {
try {
byte[] raw = new byte[]{'T', 'h', 'i', 's', 'I', 's', 'A', 'S', 'e', 'c', 'r', 'e', 't', 'K', 'e', 'y'};
SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
byte[] encrypted = cipher.doFinal(value.getBytes());
System.out.println("encrypted string:" + (new String(encrypted)));
return new String(skeySpec.getEncoded());
} catch (NoSuchAlgorithmException ex) …
Run Code Online (Sandbox Code Playgroud) 我正在尝试在swift中实现AES加密.Android和C#的加密解密工作正常.我需要在swift中实现它.这是Android和C#的当前代码,后面是这个.
我试着用
但它都不起作用.当我在服务器上发送加密的字符串时,它没有被解密.
任何帮助将不胜感激
我需要加密iPhone上的字符串并将其发送到.Net Web服务进行解密.我能够在iPhone和.Net上加密/解密,但是来自iPhone的加密字符串不能被.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
Run Code Online (Sandbox Code Playgroud)
我尝试了不同的生成密文的方法.你好/你好是:
e0PnmbTg/3cT3W + 92CDw1Q == .Net
iPhone上的yrKe5Z7p7MNqx9 + CbBvNqQ ==
和"openssl enc -aes-128-cbc -naltalt -a -in hello.txt -pass pass:hello"生成:QA + Ul + r6Zmr7yHipMcHSbQ ==
更新:我在这里发布了相应的工作代码.
在AES中,我的理解是盐是使密码更安全的东西,它不会被添加到加密文本中.但IV是用于加密第一个消息块的东西,并将被添加到加密文本中.
我有什么不对吗?
我试图使用AES算法加密数据.但是,发生了以下异常.
java.security.NoSuchAlgorithmException:
Cannot find any provider supporting AES/ECB/PKCS7PADDING
Run Code Online (Sandbox Code Playgroud)
有人知道这个问题的解决方案吗?我的JDK版本是1.7.
在Rails 3.0(Ruby 1.9.2)应用程序中,我正在尝试使用以下内容加密某些数据:
cipher = OpenSSL::Cipher.new 'aes-256-cbc'
cipher.encrypt
cipher.key = cipher.random_key
cipher.iv = cipher.random_iv
encrypted = cipher.update 'most secret data in the world'
encrypted << cipher.final
Run Code Online (Sandbox Code Playgroud)
这将进入UTF-8数据库.我的问题是
> encrypted.encoding
=> #<Encoding:ASCII-8BIT>
> encrypted.encode 'utf-8'
Encoding::UndefinedConversionError: "\xF7" from ASCII-8BIT to UTF-8
Run Code Online (Sandbox Code Playgroud)
如何获得UTF-8加密字符串?
我需要使用AES加密数据.在研究时我发现了AesCryptoServiceProvider类.
我对加密知之甚少,我不知道初始化向量(IV)是什么,所以我尝试在堆栈溢出中搜索AES示例,这引出了我的这个问题.
为什么堆栈溢出链接使用RijndaelManaged类?是RijndaelManaged的和AesCryptoServiceProvider类做同样的事情?
从语法的角度来看,我已经看过"volatile"关键字在C++函数中有多少用法?关于在函数上使用volatile关键字,但没有明确解释该问题的案例1做了什么.只有一位受访者表示这似乎毫无意义/无用.
然而,我不能完全接受这种说法,因为GNUC的AES软件实现已经使用了几年,它们有许多这样的功能:
INLINE volatile void functionname( /* ... */ ) {
/* ... */
asm( /* ... */ ) // embedded assembly statements
/* ... */
}
Run Code Online (Sandbox Code Playgroud)
必须有这种用法的原因.谁能:
一.告诉我原来的原因是什么; 和
乙.现在如何达到理想的效果?
我正在使用Ubuntu和GCC 4.6.3.
void fatal( /* ... */ ) { /* ... */ exit(1); }
typedef void voidfn ();
volatile voidfn fatal;
Run Code Online (Sandbox Code Playgroud)
这将允许编译器识别'致命'不会返回.
但是这种情况似乎不适用于AES代码.自从我在集会上做了很多事以来,已经有很长一段时间了,但我想我会认识到跳跃或类似的事情.