2011-02-03 2 views

답변

3

에는 여기에 루프가 없습니다. 안전하지 않은 type-punning 캐스트 대신 BitConverter.GetBytes을 사용할 수 있습니다.

byte[] InputBuffer = BitConverter.GetBytes(value); 

은 6 개의 원래 코드 줄을 모두 대체합니다.

+0

실제로. 다른 질문에 대한 답은 고의적으로 불투명하고 드러나는 것처럼 보입니다. 'BitConverter' 호출은 훨씬 더 읽기 쉽고 불안전 한 코드에 비해 (특히 다른 질문에 대한 답으로 진행되고있는 모든 암호문의 컨텍스트에서 취해질 때) * 아마도 * 추가 ​​* 성능 비용이 없습니다. – LukeH

+1

@LukeH :'BitConverter'는 아마도 형식을 사용합니다. 그러나 Microsoft에서 서명 한 어셈블리에 있기 때문에 모든 종류의 부분 신뢰 시나리오에서 호출자를 확인할 수 있으며 JIT에서 인라인 할 때 사용할 수 있습니다. d는 기계 코드가 정확히 동일 할 것으로 기대합니다. 이 특별한 경우에 타입 시스템을 반 복하는 것은 보안 효과가 없습니다. 왜냐하면'BitConverter'는 입력과 출력이 원시 숫자 타입이어야하기 때문입니다. –

관련 문제