2011-11-14 73 views
0

我在c#(RijndaelManaged)中加密一个字符串,它返回一个字节数组。C#加密Android解密

我想将该字节数组保存到数据库,以便稍后在android设备中解密。

我已经尝试将其转换为C#base64,但据我所知android不支持API8之前的base64解码。

是否有另一种方式保存数据库中的字节数组,所以我可以稍后获取它并在android上解密它?

10X

+0

为什么你需要转换为Base64?您可以在大多数数据库中存储字节数组。 – GeirGrusom

+0

Android设备很少可以访问数据库的C#应用​​程序访问,他们需要中间的Web服务。 – zmbq

+0

数据库将被转换为sqlite数据库(从MySql)。 –

回答

0

你可以找到的Java Base64编码解码器无处不在http://www.source-code.biz/base64coder/java/,将它添加到你的Android项目,你就关闭。

如果不是,只需将每个字节转换为C#中的两个十六进制数字,然后再返回到Android。你自己做这件事很容易。

+0

我正在尝试java类,但结果与最初在C#代码中创建的结果不同。我想弄明白为什么。 –

+0

我说不用担心。转换为十六进制并忘记它。 – zmbq

+0

我已经试过(Base64和Hex),并且由于某种原因,我在android中获得的一些字节是负数,而原始的c#字节数组都是正数。有任何想法吗? –

0

更新:

可以实现双方编码自己,这样你可以肯定,你可以看到如何实现像语言Base64编码和解码的示例代码中的Base64 C,C++,Java和JavaScript的上wikibooks

是的,如果你正在使用SQL Server,你可以使用VarBinary

你ç在一个this SO question

阅读更多关于插入一个字节数组到数据库,您可以将BLOB Data in SQLITEMySql

+0

我使用MySql,后来将被转换为SQLite。 –

+0

检查[如何从sqlite中存储和检索blob](http://stackoverflow.com/questions/625029/how-do-i-store-and-retrieve-a-blob-from-sqlite)来查看如何以sqllite存储Blo数据 – Vamsi