암호화 된 형식의 C++ 프로그램으로 만든 하나의 파일이 있습니다. 내 자바 프로그램에서 그것을 읽고 싶다. 파일 내용을 해독하는 경우 해독 알고리즘이 바이트 [c/C++에서 부호없는 char-BYTE 임]에 대한 연산을 수행하고 있습니다. 내 c/C++ 프로그램에서 사용한 것과 동일한 암호 해독 알고리즘을 사용했습니다. 이 알고리즘은 바이트에 대해 ^, %, * 및 - 연산을 포함합니다. 그러나 Java의 바이트 데이터 유형이 서명 되었기 때문에 해독에 문제가 있습니다. 서명이없는 한 번에 1 바이트 씩 읽거나 읽는 방법은 무엇입니까? 사전에 감사합니다. 자바에서 C++ 프로그램으로 만든 파일을 읽는 방법은 무엇입니까?
답변
표준 방법 InputStream.read() 한 바이트 데이터를 읽어 들여, INT로 적합한 i
로 작업을 수행. Java에는 부호가없는 기본 데이터 유형이 없으므로 유일한 접근법은 상위 프리미티브에 맞도록하는 것입니다.
파일에서 읽은 데이터 바이트에 대해 암호화/암호 해독을 수행하는 데 문제가 없어야합니다. 바이트는 서명되었거나 서명되지 않은 것으로 해석 되어도 상관 없으므로 (0xFF는 255 또는 -1 일 수 있음) . alghorithm에 "^, %, *"등이 들어 있다고 해봅시다. 이것은 문자 인코딩 (문자 당 8 비트에 맞음)을 고려한 원시 바이트의 해석입니다. 원시 바이트가 아닌 다른 암호화/암호 해독 작업을 수행해서는 안됩니다.
먼저 InputStream.read()는 int를 반환하지만 바이트를 보유합니다. 그것은 int를 사용하므로 EOF에 도달하면 -1을 반환 할 수 있습니다. int가 -1이 아닌 경우, 그것을 byte로 캐스트 할 수 있습니다.
둘째,()는 (바이트 []의 파일을 사용하려는 경우 []
그리고 마지막으로, 그리고 너무 크지 바이트에 직접 바이트를 저장 할 수 metods이 읽기) 아마도 FileInputStream에서 데이터를 복사하여 ByteArrayOutputStream에 기록하는 것이 흥미로울 것입니다. 늦은 객체에서 결과 byte []를 얻을 수 있습니다 (참고 : .read() 메서드를 사용하지 말고, 성능을 위해 .read (byte [], int, int)를 사용하십시오). 실제로 그것이 unsinged 바이트 정도로
byte b = <as read from file>;
int i = b & 0xFF;
는 필요
Java에 부호가없는 기본 유형이 없으므로 서명 된 바이트를 정수로 변환하는 것이 좋습니다. 실제로 정수는 항상 양수이므로 부호가 없습니다. 여기에서 코드를 따라 가면 변환 할 수 있습니다 : Can we make unsigned byte in Java.
- 1. 자바에서 이미지 파일을 읽는 중
- 2. 자바에서 속성 파일을 읽는 가장 좋은 방법은 무엇입니까?
- 3. 자바에서 xml 파일을 읽는 것
- 4. C#으로 Excel 파일을 읽는 방법은 무엇입니까?
- 5. 자바에서 에코를 사용하여 읽는 방법은 무엇입니까?
- 6. 파일을 응용 프로그램으로 끌어서 놓는 방법은 무엇입니까?
- 7. 파일을 만든 후 코드를 실행하는 방법은 무엇입니까?
- 8. 주어진 폴더에서 mp3 파일을 읽는 방법은 무엇입니까?
- 9. Clickonce 응용 프로그램으로 파일을 배포하는 방법은 무엇입니까?
- 10. CSV 파일을 데이터 세트로 읽는 방법은 무엇입니까?
- 11. XML 파일을 읽는 가장 좋은 방법은 무엇입니까?
- 12. 자바에서 jsp 파일을 호출하는 방법은 무엇입니까?
- 13. StreamReader를 사용하여 URI에서 파일을 읽는 방법은 무엇입니까?
- 14. 파일을 읽는 방법
- 15. 마지막으로 만든 파일을 보는 방법은 무엇입니까?
- 16. 앱에서 만든 파일을 공유하는 방법은 무엇입니까?
- 17. C++을 사용하여 텍스트 파일을 읽는 가장 우아한 방법은 무엇입니까?
- 18. C#의 ZIP 파일에서 XML 파일을 직접 읽는 방법은 무엇입니까?
- 19. C#에서 연결 문자열로 Excel 파일을 읽는 방법은 무엇입니까?
- 20. C++에서 ifstream을 사용하여 파일을 열고 읽는 방법은 무엇입니까?
- 21. 컴파일러가 파일을 만든 후에 다른 곳으로 파일을 복사하는 방법은 무엇입니까?
- 22. C#에서 wsdl 파일을 읽는 방법
- 23. UTF8 파일을 임의로 읽는 방법은 무엇입니까?
- 24. Java로 파일을 계속 읽는 방법은 무엇입니까?
- 25. PHP로 BerkeleyDB 파일을 읽는 방법은 무엇입니까?
- 26. 안드로이드에서 스택 추적 파일을 읽는 방법은 무엇입니까?
- 27. Android에서 시스템 로그 파일을 읽는 방법은 무엇입니까?
- 28. android에서 epub 파일을 읽는 방법은 무엇입니까?
- 29. 파일을 작성하고 파일을 읽는
- 30. 자바에서 입력 스트림을 읽는 중
내 암호 해독 알고리즘 ((CipherByte^(Key % 32)) - (Key * Key))이며 여기에서 사용 된 모든 변수는 byte 유형입니다. 두 개의 연속 된 바이트를 해독 한 후 짧은 값으로 변환하려고합니다. – gauri
설명 된대로 int 내부에 바이트를 넣어야합니다. 바이트 값 = -1을 얻으면; 마스크를 적용하는 트릭을 얻을 수 있습니다. int unsignedValue = value & 0xFF (십진수 255); –