F#:将字符串转换为字节数组

tel*_*re4 6 .net string f# byte

我正在编写一个简单的rc4加密/解密实用程序作为第一个项目.我一直试图将给定的字符串转换为字节数组,然后可以通过核心算法进行操作.如何将字符串转换为函数f#中的字节数组?

//From another thread
let private replace find (repl : string) (str : string) = str.Replace(find, repl)

//let private algorithm bytes = blah blah blah

let Encrypt (decrypted : string) =
    decrypted.Chars
    |> Array.map(fun c -> byte.Parse(c)) // This line is clearly not working
    // |> algorithm
    |> BitConverter.ToString
    |> replace "-" ""
Run Code Online (Sandbox Code Playgroud)

在C#中的FYI看起来像:

    public static string Encrypt(string decrypted)
    {
        byte[] bytes = new byte[decrypted.Length];

        for (int i = 0; i < decrypted.Length; ++i)
            bytes[i] = (byte)decrypted[i];

        Algorithm(ref bytes);

        return BitConverter.ToString(bytes).Replace("-", "").ToLower();
    }
Run Code Online (Sandbox Code Playgroud)

Jul*_*iet 10

虽然您可以编写自己的函数来完成这项工作,但最好坚持使用内置的.NET方法:

字符串到字节:

System.Text.Encoding.ASCII.GetBytes("hello world!")
Run Code Online (Sandbox Code Playgroud)

字符串字节:

System.Text.Encoding.ASCII.GetString([|104uy; 101uy; 108uy; 108uy;
            111uy; 32uy; 119uy; 111uy; 114uy; 108uy; 100uy; 33uy|])
Run Code Online (Sandbox Code Playgroud)