标签: aes

使用C/C++对AES进行加密 - 解密

如何使用C或C++中的256键AES加密和解密文件?

c c++ encryption aes

24
推荐指数
2
解决办法
9万
查看次数

PHP中的AES-256加密

我需要一个PHP函数,AES256_encode($dataToEcrypt)加密$data到AES-256,另一个AES256_decode($encryptedData)反过来.有谁知道这个函数应该有什么代码?

php security encryption aes encryption-symmetric

24
推荐指数
3
解决办法
6万
查看次数

Java AES加密和解密

我想使用带有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)

java encryption aes

24
推荐指数
3
解决办法
10万
查看次数

AES加密在swift中

我正在尝试在swift中实现AES加密.Android和C#的加密解密工作正常.我需要在swift中实现它.这是Android和C#的当前代码,后面是这个.

我试着用

  1. CryptoSwift
  2. 跨平台AES加密

但它都不起作用.当我在服务器上发送加密的字符串时,它没有被解密.

任何帮助将不胜感激

cryptography aes ios commoncrypto swift

24
推荐指数
4
解决办法
4万
查看次数

.Net和iPhone之间的AES互操作性?

我需要加密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 ==

更新:我在这里发布了相应的工作代码.

.net iphone encryption aes

22
推荐指数
1
解决办法
2万
查看次数

IV是否像盐一样起作用

在AES中,我的理解是是使密码更安全的东西,它不会被添加到加密文本中.但IV是用于加密第一个消息块的东西,并将被添加到加密文本中.

我有什么不对吗?

encryption aes

22
推荐指数
2
解决办法
1万
查看次数

java.security.NoSuchAlgorithmException:找不到任何支持AES/ECB/PKCS7PADDING的提供程序

我试图使用AES算法加密数据.但是,发生了以下异常.

java.security.NoSuchAlgorithmException:
    Cannot find any provider supporting AES/ECB/PKCS7PADDING
Run Code Online (Sandbox Code Playgroud)

有人知道这个问题的解决方案吗?我的JDK版本是1.7.

java security encryption jce aes

22
推荐指数
1
解决办法
5万
查看次数

如何使用OpenSSL :: Cipher加密UTF-8字符串中的数据?

在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加密字符串?

ruby openssl ruby-on-rails aes utf-8

22
推荐指数
1
解决办法
1万
查看次数

RijndaelManaged vs AesCryptoServiceProvider(AES加密)

我需要使用AES加密数据.在研究时我发现了AesCryptoServiceProvider类.

我对加密知之甚少,我不知道初始化向量(IV)是什么,所以我尝试在堆栈溢出中搜索AES示例,这引出了我的这个问题.

为什么堆栈溢出链接使用RijndaelManaged类?是RijndaelManaged的AesCryptoServiceProvider类做同样的事情?

.net c# encryption aes

22
推荐指数
1
解决办法
2万
查看次数

什么 - 或做 - "挥发性无效功能(......)"做什么?

从语法的角度来看,我已经看过"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.


注意: 我最接近解释的是,在GCC 2.5之前,您可以通过以下方式欺骗在2.5中实现的'noreturn'属性:

void fatal( /* ... */ ) { /* ... */ exit(1); }

typedef void voidfn ();

volatile voidfn fatal;
Run Code Online (Sandbox Code Playgroud)

这将允许编译器识别'致命'不会返回.

但是这种情况似乎不适用于AES代码.自从我在集会上做了很多事以来,已经有很长一段时间了,但我想我会认识到跳跃或类似的事情.

c function aes volatile void

21
推荐指数
3
解决办法
1万
查看次数