2013-11-02 26 views
2

所以,这是发生了什么事:字节数组操作从UI使用的密码算法

我工作的一个项目到大学,我已经在C#与以下这些数组类。

private byte[] Key = { 123, 217, 19, 11, 24, 26, 85, 45, 114, 184, 27, 162, 37, 112, 222, 209, 241, 24, 175, 144, 173, 53, 196, 29, 24, 26, 17, 218, 131, 236, 53, 209 }; 
    private byte[] Vector = { 146, 64, 191, 111, 23, 3, 113, 119, 231, 121, 252, 112, 79, 32, 114, 156 }; 

这些是硬编码的类代码,它们用于加密和解密文本。

一切工作正常,但我需要能够操纵这些值,这是,我想在用户界面上创建文本框,可以插入这些值的值,算法获取这些值并与他们一起工作。

如果我阅读这些数组作为字符串我得到:

7B-D9-13-0B-18-1A-55-2D-72-B8-1B-A2-25-70-DE-D1- F1-18-AF-90-AD-35-C4-1D-18-1A-11-DA-83-EC-35-D1

我需要的是读一个像“123,217,19 ,11,24,26,85,45“,并将其转换为字节数组,就像我已有的字节数组一样,所以我可以将密码学类与不同的字节数组一起使用。而且,我们可以跳过“,”的字符串的部分,并删除空格。

香港专业教育学院研究,但我无法找到任何东西,都是在谈论的流,我需要与他们一起工作就像一个正常的字符串或int数组,转换,数组索引,等等

任何想法?

+0

只是为了澄清,因为你的问题很简单“我如何解析逗号分隔的字节字符串转换成字节数组?” – vcsjones

+0

我想传递字符串“123,217,19,11,24,26,85,45”,并将它转换为字节数组,就像我已经拥有的那样,是的,Key [0] = 123,Key [1] = 217等,我试图以通常的方式做到这一点,它没有奏效 – JaimeASV

+0

为什么,这很简单?大声笑 – JaimeASV

回答

1

可以解析的逗号分隔的字节的字符串转换成一个字节数组,像这样:

public static byte[] ParseByteArrayFromInput(string input) 
{ 
    return input.Split(',').Select(s => byte.Parse(s.Trim())).ToArray(); 
} 

它将期待像“1,2,3,4”的输入。它不会执行任何“验证”来确保它可以真正被解析。这是另一个练习。如果输入内容像“猫,狗”那样,就会失败。您需要确保在源文件的顶部有一个using System.Linq;

这里的工作原理是:首先,它需要输入并将其拆分成字符串数组用逗号作为分隔符。然后它修剪掉任何空格,然后调用byte.Parse,然后将其全部转换为数组。这是打破一些评论的代码:

public static byte[] ParseByteArrayFromInput(string input) 
{ 
    var splitInput = input.Split(','); //Splits the input into a string array. The "split" happens on the comma character. 
    var convertToBytes = splitInput.Select(s => //for each of these strings in the split input... 
    { 
     var trim = s.Trim(); //Trim away any whitespace surrounding the number. 
     return byte.Parse(trim); //Parse the trimmed string into a byte. 
    }); 
    return convertToBytes.ToArray();//Convert it into an array. 
} 

这是前面的“扩展”版本,只是评论和一点点不同的语法。请看MSDN documentation on LINQ以了解关于LINQ的更多信息。

+0

做到了,thks – JaimeASV