불행하게도, 나는이 작업을 수행하는 코드가 있습니다.System.Text.Encoding.Default과 암호를 암호화
모노에서 우분투 12.04에서 System.Text.Encoding.Default
은 System.Text.Encoding.UTF8이고 Windows 7에서는 System.Text.SBCSCodePageEncoding
인 것 같습니다.
암호 암호화/암호 해독 코드는 절대로 System.Text.Encoding.Default
을 사용해서는 안되지만 상속 된 코드입니다. System.Text.Encoding
을보고 내 문제를 광범위하게 봤더니 표준 인코딩으로이 문자열을 디코딩 할 방법을 결정할 수 없었습니다.이 경우 원본 인코딩이 부족한 Mono/Linux 스택에서이 경우 디코딩 할 수 없습니다.
System.Text.SBCSCodePageEncoding
과 "잘못된 블록 크기"암호화 예외를 많은 정보를 찾을 수 없어 한
.
모든 정보 또는 제안을 부탁드립니다.
문제는 지금 SBCSCodePageEncoding을 사용하여 인코딩 된 데이터가 있다는 것입니다, 나는 그것을 디코딩하고 때, 나는 명백한 선택이 없습니다. – dwerner
기존 데이터가 데이터베이스에 문자열로 저장되므로 인코딩이 중요한 문제입니다. – dwerner
어쩌면 나는 내 상황이 무엇인지 알 필요가있을만큼 분명하지 않을 수도 있습니다. 나는 아직도 노력에 감사한다. 암호화 후 생성 된 바이트 []은 기본 인코딩 (위의 반환 값)을 사용하여 문자열로 인코딩되고 varchar 필드에 저장됩니다. 그래서 그것이 읽힐 때, 그것은 그 인코딩을 가지고 있습니다. 그리고 나서 다시 byte []로 디코드 될 때 인코딩을 사용합니다. 네, 메소드 나 UTF8Encoding을 사용하여 올바르게 문자열을 저장할 수 있습니다. 그러나 기존의 프로덕션 데이터는 해당 pagecode 쓰레기와 함께 인코딩되어 있습니다. – dwerner