문제

에 대한 회의는 복잡한 이유입니다.우리는 보낼 필요가 이미지에서 네트워크를 통해 암호화된 상태 및 암호 해독하는 다른 측면에서 그들을 사용하여 AES.서버 측에서 여기에 무슨 일:

openssl aes-256-cbc -in pup.jpg -out pup.jpg.enc
base64 pup.jpg.enc > pup.jpg.enc.b64

클라이언트 측에서 여기에 자바스크립트를 우리가 사용하고 있습니다:

<img id="picture"/>
<script>
    var picture = document.getElementById("picture");
    var data = new XMLHttpRequest();
    data.open('GET', 'http://server.com/pup.jpg.enc.b64', true);
    data.onreadystatechange = function(){
        if(this.readyState == 4 && this.status==200){
            var dec = CryptoJS.AES.decrypt(data.responseText, "password");
            var plain = CryptoJS.enc.Base64.stringify( dec );
        picture.src = "data:image/jpeg;base64,"+plain;
        }
    };
    data.send(null);
</script>

*오프라인에서도 편차에서 입력 및 출력,그리고 내가 알아낼 수 없습니다 왜한다.여기에서 입력 및 출력:

In:  /9j/4RLKRXhpZgAATU0AKgAAAAgADAEAAAMAAAABBADJx...
Out: /9j/4RLKRXhpZgAATU0AKgAAAAgADAEAAAMAAAABBAAAA...
                                               ^-- deviation

내가 지정하 CryptoJS 내가 사용하는 256 비트의 암호화?

도움이 되었습니까?

해결책

문제는 버그에서 CryptoJS 일으키는 라이브러리를 작동하지 않을 경우 입력 문자열이 포함되어 새로운 라인입니다.로 인코딩하는 파일을 다음과 같다:

openssl enc -aes-256-cbc -in pup.jpg -pass pass:"password" | base64 | tr -d '\n' > pup.enc

문제를 해결합니다.문제는 원하는 자바스크립트,하지만 인코딩이 있습니다.고,자바 스크립트가 있기 때문에,버그에서 cryptojs: https://code.google.com/p/crypto-js/issues/detail?id=38

다른 팁

에서 CryptoJS 문서,그것을 언급의 출력됩니다.암호 해독은 동일한 형식으로 출력의 해쉬 기능입니다.에 의 심부름을 출력한 섹션 예있으로 변환이 WordArray 를 기본 64 로 인코딩된 문자열:

    alert(hash.toString(CryptoJS.enc.Base64)); // L3dmip37+NWEi57rSnFFypTG7ZI25Kdz9tyvpRMrL5E=
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top