Sharepoint 2010 설치 후 데이터베이스를 보다가 보면 tCompressedString 타입이라면서 암호화된 문자열을 볼 수가 있다.
그 문자열을 복호화해주는 코드라고 볼 수 있다.
private string Decompress(byte[] compressedBytesBuffer)
{
string uncompressedString = String.Empty;
using (MemoryStream compressedMemoryStream = new MemoryStream(compressedBytesBuffer))
{
compressedMemoryStream.Position += 12; // Compress Structure Header according to [MS -WSSFO2].
compressedMemoryStream.Position += 2; // Zlib header.
using (DeflateStream deflateStream = new DeflateStream(compressedMemoryStream, CompressionMode.Decompress))
{
using (MemoryStream uncompressedMemoryStream = new MemoryStream())
{
deflateStream.CopyTo(uncompressedMemoryStream);
uncompressedMemoryStream.Position = 0;
using (StreamReader streamReader = new StreamReader(uncompressedMemoryStream))
{
uncompressedString = streamReader.ReadToEnd();
}
}
}
}
return uncompressedString;
}
private byte[] ConvertHexStringToByte(string convertString)
{
convertString = convertString.Replace("0x", "");
byte[] convertArr = new byte[convertString.Length / 2];
for (int i = 0; i < convertArr.Length; i++)
{
convertArr[i] = Convert.ToByte(convertString.Substring(i * 2, 2), 16);
}
return convertArr;
}
// 예제
string sampleString;
string xmlString = Decompress(ConvertHexStringToByte(sampleString));
반응형
'개발 > C#' 카테고리의 다른 글
응용 프로그램이 미리 컴파일되었으므로 "{폴더}" 디렉터리를 사용할 수 없습니다. (0) | 2022.10.28 |
---|---|
C# Url Combine (0) | 2022.06.10 |
C# parse xml pretty string (0) | 2022.01.20 |
C# string to int 확장형 (0) | 2022.01.11 |
C# byte to int (0) | 2022.01.11 |
댓글