여기 거래의 Cipher.update에 전달 :데이터의 손실 DES (Node.js를)를 사용하는 동안
이 같은 구조화 된 데이터의 버퍼가 :
(내게로 계산)[39 bytes of header] + [body] + [padding]
. 파일에 저장하면 실제로 구조를 인식 할 수 있으며 모든 것이 잘된 것처럼 보입니다.
그리고, I는 현재의 버퍼 암호화 DES-CBC에, 그리고 어떤 I 할 것은
a) 새로운 IV (autoPadding를 키를 가지며, 계산 DES 랩퍼 인스턴스화 다음 Cipher 오브젝트 거짓을 (데이터 버퍼이고, EN이 Cipher 오브젝트)
var buf1 = en.update(data);
I이다 :는 다음과 같이 버퍼가 다음 암호화 도착)
C의 wrapper DES에 버퍼 합격)
b)도 만들어 파일에 buf1
을 출력하십시오 (그런 다음, 내 경우에는 소켓에) 바이트를 검색 한 다음 해독하여 다음 구조를 얻습니다. [header][body]
그러나 파일에 데이터를 출력하고 바이트를 검색하면 시작 구조가 생깁니다. 나는 또한 에 en.final()
을 추가해야한다는 것을 알고 있지만, 필자의 경우에는 autoPadding을 사용하여 이러한 값을 필요로하지 않으며 false가되면 오류가 발생합니다.
** 요즘에는 DES를 사용하지 마십시오. ** 56 비트 보안 만 제공합니다. AES는 128 비트의 가장 낮은 키 크기로 더욱 안전하기 때문에 훨씬 더 좋습니다. DES에서 최대 암호문 크기에 대한 실질적인 제한도 있습니다. [3DES와 AES의 보안 비교] (http://security.stackexchange.com/q/26179/45523)를 참조하십시오. –
Artjom, 고맙습니다.하지만 지금은 DES를 사용해야합니다. – ProTheJoker