3

我一直在從.NET for ColdFusion尋找下面的方法/函數的等價物。我有數據庫上運行ASP.NET站點的ASP成員表。 ColdFusion站點使用相同的數據庫。這個想法是使用ColdFusion站點使用的當前數據庫開發一個ASP站點。這兩個網站將平行運行至少3-6個月,允許用戶從任何一個網站進行連接。創建用戶也可以發生在任何一方。從.NET我有它排序。但在ColdFusion中,我仍在掙扎。在ColdFusion中生成相當於.NET成員身份密碼的密碼鹽Salt

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

回答

2

我發現了一些非常簡單的東西。它可能不是相同的加密服務,但會產生與上面相同的長度和格式。

GenerateSecretKey("AES") 

那樣簡單。也許這可能會在未來幫助某人。

0

沒有純CF等價物。但是,Java當量是SecureRandom

甲強加密隨機數最低限度地與FIPS 140-2, Security Requirements for Cryptographic Modules指定的 統計隨機數發生器的測試中,第4.9.1節規定。 此外,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> 
+0

順便說一句:你*應該*能夠從'createObject(「.net」)'調用'RNGCryptoServiceProvider',但是..它似乎不工作。沒有語法錯誤,但它不會用隨機字節填充'buf'。不知道這是我的錯誤還是錯誤。 – Leigh

+0

javacast byte []中可以定義數組長度是否有限制?另外我想知道如果我將數組傳遞給字符集(例如[83,34,54,56,34])是否會產生隨機鹽? –