2013-11-02 66 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