3

ColdFusion 용 .NET에서 아래의 메소드/함수와 동일한 기능을 검색했습니다. 데이터베이스에서 실행중인 ASP.NET 사이트가있는 ASP 멤버쉽 테이블이 있습니다. 동일한 데이터베이스가 ColdFusion 사이트에 사용됩니다. ColdFusion 사이트에서 사용하고있는 현재 데이터베이스로 ASP 사이트를 개발하는 것이 아이디어입니다. 두 사이트는 최소 3-6 개월 동안 병렬로 실행되어 사용자가 어느 사이트에서든 연결할 수 있습니다. 사용자 생성은 양쪽에서 발생할 수도 있습니다. NET에서 나는 그것을 정렬했습니다. 그러나 ColdFusion에서 나는 아직도 고심하고 있습니다..NET 회원 비밀번호 소금과 동일한 ColdFusion에서 비밀번호 소금 생성

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

답변

2

나는 아주 간단한 것을 발견했다. 동일한 Crypto Service는 아니지만 위와 동일한 길이와 형식을 생성합니다.

GenerateSecretKey("AES") 

간단합니다. 아마 이것은 미래에 누군가를 도울 것입니다.

0

순수 CF와 동일하지 않습니다. 그러나, 자바 동등한 SecureRandom이다

강력한 암호화 기법 난수 최소 FIPS 140-2, Security Requirements for Cryptographic Modules 지정된 통계적 난수 발생기 테스트 섹션 4.9.1 따른다. 또한 SecureRandom은 비 결정적 출력을 생성해야합니다. 따라서 SecureRandom 오브젝트로 전달 된 시드 물질 예측할 수 있어야하며 RFC 1750: Randomness Recommendations for Security.

실시 예에 기재된 모든 SecureRandom의 출력 시퀀스는 강력한 암호 여야 BTW

<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])로 배열을 전달하면 궁극적으로 임의의 소금을 생성하는 덜 안전한 방법이 될까요? –

관련 문제