Tag: aes

AES CMAC计算C#

我知道MAC是最后一个块加密的第一个字节,并且在这里找到了这个CMAC解释,但它有点难以理解。 也许已经有一些CMAC AES问题但我很抱歉我无法理解它。 任何人都可以解释如何计算CMAC? 如果需要,可以使用C#中的一些示例代码。 谢谢

C#/ Java | AES256加密/解密

我想加密通过Java / C#套接字(Java服务器,C#客户端)发送的所有数据。 我想使用AES256,但我不能让Java和C#生成相同的加密代码。 任何人都可以给我两个例子,1个用Java,1个用C#生成相同的结果并正确解密结果? 到目前为止我尝试了什么: public Encrypt(AOBCore instance){ try { String message=”This is just an example”; // Get the KeyGenerator KeyGenerator kgen = KeyGenerator.getInstance(“AES”); kgen.init(256); // 192 and 256 bits may not be available // Generate the secret key specs. SecretKey skey = kgen.generateKey(); //Cantget ‘test’ in here… byte[] raw = skey.getEncoded(); SecretKeySpec skeySpec […]

在EOF抛出exception之前停止解密:填充无效且无法删除

这就是我们拥有的场景:我们有大量的加密文件,大约为千兆字节,如果我们将它们读到最后,我们就可以正确解密。 当我们正在读取并检测文件中的某个标志时出现问题,然后我们停止读取并调用reader.Close(),会发生的是CryptographicException:“Padding无效且无法删除”。 被抛出。 我有这个小控制台应用程序重现这种行为,测试它只是运行它,它将在你的C:\驱动器中创建一个文件然后按任意键时将逐行读取,并在按’q’时将停止。 using System; using System.IO; using System.Security.Cryptography; namespace encryptSample { class Program { static void Main(string[] args) { var transform = CreateCryptoTransform(true); // first create encrypted file using (FileStream destination = new FileStream(“c:\\test_enc.txt”, FileMode.OpenOrCreate, FileAccess.Write, FileShare.ReadWrite)) { using (CryptoStream cryptoStream = new CryptoStream(destination, transform, CryptoStreamMode.Write)) { using (StreamWriter source = new StreamWriter(cryptoStream)) […]

从C#测试AES-NI指令

我想知道是否有办法在C#.NET的主机系统CPU中测试AES-NI的存在 。 让我先说这个问题不是询问如何使用 .NET中的AES-NI。 事实certificate,简单地使用AESCryptoServiceProvider将使用AES-NI(如果可用)。 这个结果基于独立的基准测试,我将AESCryptoServiceProvider的性能与TrueCrypt中提供的基准进行了比较,后者确实支持AES-NI。 在使用和不使用AES-NI的两台机器上,结果令人惊讶地相似。 我希望能够测试它的原因是能够向用户表明他们的计算机支持AES-NI。 这是相关的,因为它会减少支持事件,包括“但我的朋友也有Core i5,但他的速度要快得多!” 如果程序的用户界面可以向用户指示他们的系统支持或不支持AES-NI,则还可以指示“由于该系统不支持AES-NI,因此性能较低是正常的”。 (我们可以感谢英特尔对不同处理器步进的所有困惑!:-)) 有没有办法通过WMI检测这些信息?

C#使用System.Security.Cryptography.Aes进行AES256加密的示例

我需要实现AES 256加密/解密,我无法找到一个正常工作的示例。 MSDN建议我应该使用AES类。 Rijndael类是Aes算法的前身。 您应该使用Aes算法而不是Rijndael。 有关更多信息,请参阅.NET安全博客中的Rijndael和AES之间的条目。 有没有人能指出我使用AES类AES2的一个很好的例子? 为了增加一点清晰度: 我有一个密码文件,其中包含共享密钥和一串加密文本。 我需要解密文本然后validation它。 我见过的所有例子都希望至少有2个参数来执行加密/解密。 我是否能够从密码文件中的文本推断初始化向量和密钥? 这是我的密码文件中保存的文本示例: ÊÚḱÌráƒ@†²;Ä;öDWnªóª©¨¨L

如何存储用于加密文件的密钥

我正在玩一个应用程序将文件备份到“云”:)我想在存储之前加密文件。 我已经介绍过这部分,但是由于这个应用程序将监视文件夹以进行更改并上传更改的文件,我需要存储用于加密文件的密钥。 想法是用户提供密码并生成密钥。 目前我正在使用.NET Framework进行加密。 我正在使用RijndaelManaged类来加密/解密,而使用PasswordDeriveBytes类来获取密钥。 但是,我应该如何保留用于加密文件的密钥? 我也希望程序从Windows开始,而不需要让用户再次输入密码。

使用高级加密标准算法(AES)在TypeScript中加密字符串并在C#中解密

我很难在C#中使用打字稿和解密来实现加密。 在这里发布问题之前,我做了谷歌并找到了一些链接,但这些链接与JavaScript有关,而不是打字稿。 使用AES算法在javascript中加密并在C#中解密 使用angular2中的cryptojs库加密文本 如何在Angular 2中导入非核心npm模块,例如(使用加密库)? 我按照上面的链接,在我当前的应用程序中实现加密/解密概念。 这是我在myservice.ts中编写的代码 //import { CryptoJS } from ‘node_modules/crypto-js/crypto-js.js’; //import ‘crypto-js’; import * as CryptoJS from ‘crypto-js’; var key = CryptoJS.enc.Utf8.parse(‘7061737323313233’); var iv = CryptoJS.enc.Utf8.parse(‘7061737323313233’); var encrypted = CryptoJS.AES.encrypt(CryptoJS.enc.Utf8.parse(“It works”), key, { keySize: 128 / 8, iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 }); var decrypted = CryptoJS.AES.decrypt(encrypted, key, { keySize: […]

如何在JavaScript中加密字符串并在C#中解密该字符串

我之前看到过这个问题,但在这些情况下,海报想要在面向公众的网站上加密某些内容(通常是url),而且回复主要是“不要!”。 但是,在我的情况下,JavaScript将存储在非公共内部系统中,所以我认为我有更多的余地。 类似问题的一个例子是: 如何在javascript中加密url并在c#中解密 – 并且答案实际上没有回答问题。 我的“JavaScript”实际上是“SuiteScript”,其定义为“SuiteScript是一种基于JavaScript的API,可让开发人员扩展NetSuite”,其中NetSuite是托管的CRM软件包,因此用于加密我的字符串的任何编码都将是隐藏给每个人,除了我公司的员工(因此被认为安全隐藏)。 我想做的是: 生成一个查询字符串(例如userid = guidValue&firstName = stringValue&company = stringValue&…), 使用安全方法加密(例如AES256,RSA,无论有人认为这是安全的), 在我的基于C#的网站上调用网页,在URL中传递此字符串(例如mysite.com/mypage.aspx?encStr=encryptedString) 让C#页面解密它,分离名称/值对并处理它们。 我已经google搜索stackoverflow,但没有找到任何文章或答案提供可以由两种技术使用的加密方法的明确说明。 有人有这样的指示吗?

PHP相当于.net AES加密

我正在与客户进行数据交换集成,他们发送给我的数据使用他们的C# encrypt方法encrypt (如下)。 我的应用程序正在运行PHP 5.3,我需要一个等效的代码来解密他们发送的数据。 我有PHP代码,但它不能正确解密客户端数据。 显然,我在加密/解密方法,IV键或其他方面犯了一些错误。 谁能发现错误? 谢谢。 C#代码(来自我的客户): using System; using System.Security.Cryptography; using System.Text; using System.IO; public class Program { public static void Main() { var text = “this is a plain string”; var enc = Program.Encrypt(text); Console.WriteLine(enc); Console.WriteLine(Program.Decrypt(enc)); } public static string Encrypt(string clearText) { var EncryptionKey = “1234567890123456”; byte[] clearBytes = […]

C#PHP AES 256 CBC加密

您好我正在尝试使用PHP和AES 256 CBC模式加密我服务器上的文件/字符串,因为字符串以’\ 0’结尾我可以轻松地从AES添加的填充中删除填充,但是文件我不能,因为其中一些包含空字节。 在发送数据之前,我将其编码为base64字符串。 这是我的C#decrypt函数 internal static byte[] __AES_DECRYPT(byte[] input, string _key, string _iv) { var myRijndael = new RijndaelManaged() { Padding = PaddingMode.Zeros, Mode = CipherMode.CBC, KeySize = 256, BlockSize = 256 }; byte[] key = Encoding.ASCII.GetBytes(_key); byte[] iv = Encoding.ASCII.GetBytes(_iv); var decryptor = myRijndael.CreateDecryptor(key, iv); var sEncrypted = input; var fromEncrypt = […]