2013-05-20 35 views
0

RSA標誌錯誤我做了這個代碼與SHA384

RSACryptoServiceProvider RSASign = new RSACryptoServiceProvider(); 
        StreamReader sr = File.OpenText("PublicPrivate.txt"); 
        string myKey = sr.ReadToEnd(); 
        sr.Close(); 

        RSASign.FromXmlString(myKey); 

        byte[] signature = RSASign.SignData(arr, new SHA384CryptoServiceProvider()); 

        string head = "<!>Signature</!>"; 

        byte[] headBytes = Encoding.Default.GetBytes(head); 

        byte[] arrayToSend = new byte[headBytes.Length + signature.Length]; 

        arrayToSend = headBytes.Concat(signature).ToArray(); 

        UserSock.Send(arrayToSend); 

而且我在我的電腦萬物面臨這個問題工作正常,但是當我裏面複製在不同計算機上的EXE文件,收到RSASign.SignData()函數出錯。 問題是否可能與不同的.net框架版本有關。在我的電腦上有4.5版本,我在3.5和4的某些電腦上測試過。 否則,我不應該是這個問題。我確定RSA私鑰被正確讀取。 謝謝大家提前。

+0

它引發了哪個錯誤? – stark

+0

我添加了一個嘗試/抓住sornd的signdata,但唯一的錯誤,我可以收到的是一個無效的值。 – Francesco

+0

好吧,我猜是不是有關框架版本的問題,因爲我試圖編譯與版本4和3.5的程序 – Francesco

回答

0

解決的辦法是用"SHA384" 我也發現,以取代new SHA384CryptoServiceProvider(),這是關係到Visual Studio中的問題,2012年