我对加密知之甚少,但我的目标本质上是解密字符串。我已获得 AES(128) 密钥。
但是,我必须从加密字符串中检索 IV,即前 16 位。
这是salesforce的文档以获取更多信息(如果我解释的内容不正确)
使用指定的算法和私钥加密 blob clearText 。当您希望 Salesforce 为您生成初始化向量时,请使用此方法。它存储为加密 blob 的前 128 位(16 个字节)
http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_classes_restful_crypto.htm (encryptWithManagedIV)
为了检索 IV,我尝试过这样的事情(虽然我不相信这是正确的):
public string retrieveIv()
{
string iv = "";
string input = "bwZ6nKpBEsuAKM8lDTYH1Yl69KkHN1i3XehALbfgUqY=";
byte[] bytesToEncode = Encoding.UTF8.GetBytes(input);
for(int i = 0; i <= 15; i++){
iv += bytesToEncode[i].ToString(); ;
}
return iv;
}
(只需忽略输入是硬编码且未参数化的事实;更易于测试)
然后使用此问题的最佳答案来解密字符串