Articles of .net

Android和C#之间的encryption

我正在使用以下C#源代码使用AES(ECB 256)encryption纯文本: public static string Encode(string PlainText) { byte[] Key = ASCIIEncoding.UTF8.GetBytes("12345678901234567890123456789012"); string encrypted = null; RijndaelManaged rj = new RijndaelManaged(); rj.BlockSize = 256; rj.KeySize = 256; rj.Key = Key; rj.GenerateIV(); byte[] IV = rj.IV; rj.Mode = CipherMode.ECB; rj.Padding = PaddingMode.Zeros; try { using (MemoryStream ms = new MemoryStream()) { using (CryptoStream cs = new […]

具有SHA-1的.NET RSACryptoServiceProvider的Java等价物

我在C#中有以下数据签名代码 RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(); string PrivateKeyText = "<RSAKeyValue><Modulus>….</D></RSAKeyValue>"; rsa.FromXmlString(PrivateKeyText); string data = "my data"; byte[] SignedByteData = rsa.SignData(Encoding.UTF8.GetBytes(data), new SHA1CryptoServiceProvider()); 我想在Java(Android)中重现相同的代码: String modulusElem = "…"; String expElem = "…"; byte[] expBytes = Base64.decode(expElem, Base64.DEFAULT); byte[] modulusBytes = Base64.decode(modulusElem, Base64.DEFAULT); BigInteger modulus = new BigInteger(1, modulusBytes); BigInteger exponent = new BigInteger(1, expBytes); try { […]

使用.NET阅读Android应用程序(apk)的ApplicationManifest

我正在开发一个pipe理Android应用程序包(apk)的应用程序(使用.NET Framework开发),程序必须读取驻留在apk中的ApplicationManifest.xml 。 从apk中提取Manifest文件是没有问题的,因为我可以使用标准的zip工具从apk中提取所有文件。 但是阅读ApplicationManifest是不可能的。 我期望它包含原始的XML数据,但它是某种encryption或编码。 有没有一种方法使用.NET Framework的BCL从ApplicationManifest中读取XML数据? 还是有一个.NET Framework的库来读取ApplicationManifest?

Android应用内结算validationDot Net(C#)中的收据

我有一个Android应用程序,它提供应用程序内计费,我们有我们的应用程序服务器连接到Android应用程序提供服务的用户,在应用程序内购买,我们希望推送收据到服务器进行validation过程。 现在的问题是我不知道如何转换Security.java文件在networking(C#)作为我们的服务器是在网点写 注意:这个文件来自android应用内计费同样的应用程序,它提供了消息签名function,我只是需要它们在净点的等价物。 有关此问题的更多详细信息,请访问http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/66bb5683-fde6-47ca-92d7-de255cc8655a

从Android读取WCF RESTdate

读取通过Android程序上的WCF REST服务发送的.NET DateTime最简单的方法是什么? date序列化为以下格式:Data = / Date(1326273723507 + 0100)/ 有没有简单的方法来反序列化这个date? 谢谢。

用C#编写Android应用程序(Xamarin)

我是C#程序员,想编写一个Android应用程序。 我是一个固执的人,并拒绝再次写Java(六年前转向C#之后)。 除了Mono和MonoDroid(还有编写Java)之外,我还有什么select吗? 或者我应该只是因为拒绝回到我的Java根本而感到愚蠢? Xamarin比Phonegap等其他的优点和缺点是什么? (请避免与Java相关的问题与C#的讨论,当我问及回到Java根源时,我正在修辞。

如何从Android移动应用程序调用本地Web服务

从过去的几天来,我一直在研究一个Android代码来调用本地的Web服务。 我正在使用Android的ksoap库来调用我在.NET中创build的SOAP Web服务。 不过,我觉得我的代码有问题,因为我从应用程序调用Web服务时得到的响应会碰到catch块。 我试着debugging我的Android代码,但我仍然无法解决我的问题。 请有人可以告诉我什么是错误的或任何其他更简单的方法来做到这一点? 这是我迄今为止实现的Android代码: package com.demo; import java.net.SocketException; import org.ksoap2.SoapEnvelope; import org.ksoap2.serialization.SoapObject; import org.ksoap2.serialization.SoapPrimitive; import org.ksoap2.serialization.SoapSerializationEnvelope; import org.ksoap2.transport.AndroidHttpTransport; import android.app.Activity; import android.app.ProgressDialog; import android.os.AsyncTask; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; public class Login extends Activity { private static final String SOAP_ACTION = "http://tempuri.org/GetLoginDetails"; private static final […]

如何在Android中解决这个错误? java.net.MalformedURLException:未find协议:

我不知道什么是确切的问题,但我得到的错误,即使我也检查所有path,这是正确的,但仍然会得到错误。 java.net.MalformedURLException:未find协议:www.w3schools.com/webservices/tempconvert.asmx 我的代码: package com.example.mytest; import org.ksoap2.SoapEnvelope; import org.ksoap2.serialization.SoapObject; import org.ksoap2.serialization.SoapPrimitive; import org.ksoap2.serialization.SoapSerializationEnvelope; import org.ksoap2.transport.AndroidHttpTransport; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.widget.TextView; @SuppressWarnings("deprecation") public class MainActivity extends Activity { private final String SOAP_ACTION = "http://tempuri.org/CelsiusToFahrenheit"; private final String METHOD_NAME = "CelsiusToFahrenheit"; public final String NAMESPACE = "http://tempuri.org"; public String URL = "www.w3schools.com/webservices/tempconvert.asmx"; […]

发送GCM消息(服务器端)往往失败 – 但远非如此

我正在为我的Android应用使用Google云消息传递(GCM)服务。 我已经按照所有的规则来执行它,它是有效的。 好吧,差不多。 大多数情况下,在60-70%的情况下,我可以使用web服务在Google网页上讨论的方式成功发送GCM消息。 通常,我从webservice得到以下回复,这表明我已成功发送GCM消息: { "multicast_id":8378088572050307085, "success":1, "failure":0, "canonical_ids":0, "results": [ { "message_id":"0:1363080282442710%7c4250c100000031" } ] } 这是说:一切OK,消息发送。 但是,在很多情况下,我在调用webservice时遇到一个HTTP错误,那就是: 无法从传输连接读取数据:build立的连接被主机中的软件中止。 这是.NET消息告诉我,调用Web服务(使用HttpWebRequest和POST)失败。 这是一些显示问题的日志消息: 这是我用来调用WS的代码: public static string SendMessage(string registrationId, string command, string extra, bool retry) { try { HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://android.googleapis.com/gcm/send"); request.Method = PostWebRequest; request.KeepAlive = false; GCMPostPacket json = new GCMPostPacket() { collapse_key = […]

如何在Android中使用C#生成的RSA公钥?

我想确保Android应用程序和C#ASP.NET服务器之间的消息隐私,在HTTPS不能被假定为可用的情况下。 我想使用RSA来encryption从Android设备传输的对称密钥,当它首次联系服务器时。 RSA密钥对已在服务器上生成,并且私钥保存在服务器上。 密钥对是在C#中使用以下命令生成的: // Create a new instance of RSACryptoServiceProvider RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(2048); // Ensure that the key doesn't get persisted rsa.PersistKeyInCsp = false; RSAParameters parameters = rsa.ExportParameters(false); string modulus = Convert.ToBase64String(parameters.Modulus); string exponent = Convert.ToBase64String(parameters.Exponent); string xmlKeys = rsa.ToXmlString(true); 尝试通过硬编码embedded公钥(从Visual Studio复制到Eclipse)不起作用。 该代码将引发org.bouncycastle.crypto.DataLengthException:对rsaCipher.doFinal()方法调用中的RSA密码input过大。 // Generate a new AES key byte[] key = […]