본문 바로가기
개발

C# Sharepoint tCompressedString to string(xml)

by 혈중마라농도 2022. 2. 2.

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));
반응형

'개발' 카테고리의 다른 글

IIS 에러 페이지 설정  (0) 2022.07.18
Cookie 설정  (0) 2022.05.17
IIS Header Server, x-aspnet-version, x-powered-by 제거하기  (0) 2022.01.24
Window10 NVM 설치하기  (0) 2022.01.03
Visual Studio Code 테마 변경하기  (0) 2021.11.25

댓글