Skip to content

Instantly share code, notes, and snippets.

@motowilliams
Last active January 9, 2018 16:23
Show Gist options
  • Save motowilliams/ab55d5ad196934548bb609212313b6f6 to your computer and use it in GitHub Desktop.
Save motowilliams/ab55d5ad196934548bb609212313b6f6 to your computer and use it in GitHub Desktop.
function Compress-String {
[CmdletBinding()]
param (
[parameter(ValueFromPipeline)][string]$StringContent
)
process {
$ms = New-Object System.IO.MemoryStream
$cs = New-Object System.IO.Compression.GZipStream($ms, [System.IO.Compression.CompressionMode]::Compress)
$sw = New-Object System.IO.StreamWriter($cs)
$sw.Write($StringContent)
$sw.Close();
$bytes = $ms.ToArray()
return [System.Convert]::ToBase64String($bytes)
}
}
function Expand-String {
[CmdletBinding()]
param (
[parameter(ValueFromPipeline)][string]$Base64Content
)
process {
$data = [System.Convert]::FromBase64String($Base64Content)
$ms = New-Object System.IO.MemoryStream
$ms.Write($data, 0, $data.Length)
$ms.Seek(0, 0) | Out-Null
$cs = New-Object System.IO.Compression.GZipStream($ms, [System.IO.Compression.CompressionMode]::Decompress)
$sr = New-Object System.IO.StreamReader($cs)
$str = $sr.readtoend()
return $str
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment