如何在Powershell中划分ASCII码

时间:2013-09-01 04:43:38

标签: powershell

所以在Powershell中我试图获取文件的Ascii值并将它们除以一个值。我有我想要发生的事情,如下所示,我不知道如何做到这一点。

$ value将是300 $ file将是$ home \ test.txt

所以我想要它做的是以Ascii代码格式获取文件的内容,所以让我们假装文件说“你好”。当你得到内容时,它将是:

72
101
108
108
111

我真正想要做的是将所有的Ascii值都确定,然后将它们放在一行中。那么你好,是:

72
101
108
108
111

会变成:

72101108108111

然后我会取上面显示的数字并将其除以$ value,结果将被设置为文件的内容。解密它的唯一方法是将该数字乘以正确的密钥,然后再将其拆分为正常的Ascii格式:

72
101
108
108
111

然后我希望脚本获取上面显示的值并将它们放入1行,这样就会显示如下:

72101108108111

然后我会把它除以$ value并得到它:

240337027027.037

然后上面显示的是设置到文件的内容。现在解密它你将获取文件的内容(现在将是240337027027.037)并将它乘以你之前用来分割它的相同值,如果做得对,你应该得到这个:

72101108108111

然后将其分成原始的Ascii值:

72
101
108
108
111

然后再将该文件的内容设置为-encoding byte中的文件内容,以获取文件的原始内容。有谁知道怎么做?

1 个答案:

答案 0 :(得分:0)

你能用这样的东西吗?

#Set value (I had to set a lower value because your value was way too large to process with a Int32 (and 64 I think)
$value = 22949672

#Convert (had to multiply because dividing casues to small number to be save correctly(it rounds up and ruins the decoding later)
Get-Content .\test.txt -Encoding Byte | % { $_ * $value } | Set-Content .\test2.txt -Encoding Ascii

#Convert back
Get-Content .\test2.txt -Encoding Ascii | % { [byte]($_ / $value) } | Set-Content .\test3.txt -Encoding Byte