在ColdFusion中生成等同于.NET Membership Password Salt的密码盐

时间:2013-07-03 08:09:20

标签: coldfusion passwords asp.net-membership coldfusion-9 membership-provider

我一直在从ColdFusion的.NET中搜索等效的以下方法/函数。我有ASP成员资格表与数据库上运行的ASP.NET站点。 ColdFusion站点使用相同的数据库。我们的想法是使用ColdFusion站点使用的当前数据库开发ASP站点。这两个站点将并行运行至少3-6个月,允许用户从任一站点连接。用户的创建也可以在任何一方发生。从.NET我有它排序。但在ColdFusion中,我仍然在苦苦挣扎。

private string GenerateSalt() {
        var buf = new byte[16];
        (new RNGCryptoServiceProvider()).GetBytes(buf);
        return Convert.ToBase64String(buf);
   }

2 个答案:

答案 0 :(得分:2)

我发现了一些非常简单的事情。它可能不是相同的加密服务,但它生成的长度和格式与上面相同。

GenerateSecretKey("AES")

这很简单。也许这有助于将来的某些人。

答案 1 :(得分:0)

没有纯粹的CF等价物。但是,java等价物是SecureRandom

  

加密强随机数最低限度符合   {4.9}中FIPS 140-2, Security Requirements for Cryptographic Modules中规定的统计随机数生成器测试。   此外,SecureRandom必须产生非确定性输出。   因此,传递给SecureRandom对象的任何种子材料都必须是   不可预测的,所有SecureRandom输出序列必须是   密码强,如RFC 1750: Randomness Recommendations for Security.

中所述

示例:

<cfscript>
    provider = createObject("java", "java.security.SecureRandom").getInstance("SHA1PRNG");
    bytes = javacast("byte[]", listToArray(repeatString("0,", 16)));
    provider.nextBytes( bytes ) ;   
    saltInBase64 = binaryEncode( bytes, "base64");
</cfscript>