我有一个简单的Android客户端,需要与简单的C#HTTP侦听器"对话".我想通过在POST请求中传递用户名/密码来提供基本级别的身份验证.
MD5哈希在C#中是微不足道的,并且为我的需求提供了足够的安全性,但我似乎无法在android端找到如何做到这一点.
编辑:只是为了解决有关MD5弱点的问题 - C#服务器运行在我的Android客户端用户的PC上.在许多情况下,他们将使用自己的局域网上的Wi-Fi访问服务器,但他们可能会自己冒险从互联网上访问它.此外,服务器上的服务需要使用MD5的传递到我无法控制的第三方应用程序.
我想加密一个字符串然后把它放在一个文件上.也想在我想要的时候解密它.我不需要非常强大的安全性.我只是想让其他人更难获取我的数据.
我尝试了几种方法.这是这些.
Md5加密:
public static final String md5(final String toEncrypt) {
try {
final MessageDigest digest = MessageDigest.getInstance("md5");
digest.update(toEncrypt.getBytes());
final byte[] bytes = digest.digest();
final StringBuilder sb = new StringBuilder();
for (int i = 0; i < bytes.length; i++) {
sb.append(String.format("%02X", bytes[i]));
}
return sb.toString().toLowerCase();
} catch (Exception exc) {
return ""; // Impossibru!
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试了这个功能,并能够加密字符串,但我不能解密它的数据.所以这不是解决方案.
DES加密:
密码短语是自动生成的.密码始终是一样的吗?然后我的安全在哪里.所以这也不是我的解决方案.
AES加密:
我也从这个链接尝试过Aes.这里的密钥也是自动生成的?
还有其他方法吗?
我有相同格式的不同唯一字符串.字符串看起来像这样axf25!j&809>-11~dc,我想从这个字符串中获取唯一的整数值.每次此值必须相同并且取决于字符串.我试图将字符串的每个字符串转换为int,然后我将字符彼此相加.但是如果我有2个具有相同符号集的字符串,它将返回彼此相等的整数值.所以它不适合我.如何从唯一字符串生成唯一的整数值?
更新:
在考虑了所有给定的解决方案后,我决定创建生成唯一整数值的函数.我希望它排除了碰撞.
public int getUniqueInteger(String name){
String plaintext = name;
int hash = name.hashCode();
MessageDigest m;
try {
m = MessageDigest.getInstance("MD5");
m.reset();
m.update(plaintext.getBytes());
byte[] digest = m.digest();
BigInteger bigInt = new BigInteger(1,digest);
String hashtext = bigInt.toString(10);
// Now we need to zero pad it if you actually want the full 32 chars.
while(hashtext.length() < 32 ){
hashtext = "0"+hashtext;
}
int temp = 0;
for(int i =0; i<hashtext.length();i++){
char c = hashtext.charAt(i);
temp+=(int)c;
}
return …Run Code Online (Sandbox Code Playgroud) 我已经在android,webos,blackberry,iphone上实现了移动应用程序.
现在我将项目与.net webservices集成.
交换数据我需要在移动平台加密并在.net webservices中解密
这是我在互联网上尝试过的最好的加密算法,得到了零.
请建议我.如果你分享任何示例代码.你节省了我很多
提前致谢
马赫什
我花了几个小时试图弄清楚如何做到这一点.我已经在stackoverflow和文档上发布了帖子.
我有一个android.graphics.Bitmap对象,我需要得到它的md5总和.在我想验证总和的时候,它还没有保存到文件系统中.我已经看到了几种为java.io.File对象执行此操作的方法.我只需要一个接收Bitmap对象的函数,并将hex md5 sum作为String返回.
这可能已经在某个地方得到了解决,但如果是这样的话,我一直无法理解它或从中推断出如何做到这一点.
方法越少,资源越多,当然越好.
我想在我的应用程序中对字符串密码进行哈希处理,我在网上搜索了示例,但我不明白如何在我的情况下实现,有人可以向我展示一个如何正确实现哈希的示例吗我的代码。谢谢
package ie.example.artur.adminapp;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
public class MainActivity extends AppCompatActivity {
EditText editTextName,editTextEmail,editTextPassword;
TextView textView;
private static final String DB_URL = "jdbc:mysql://10.3.2.51/socialmedia_website";
private static final String USER = "zzz";
private static final String PASS = "zzz";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
textView = (TextView) findViewById(R.id.textView);
editTextName = (EditText) findViewById(R.id.editTextName); …Run Code Online (Sandbox Code Playgroud) java ×5
android ×4
md5 ×3
hash ×2
.net ×1
bitmap ×1
blackberry ×1
cryptography ×1
encryption ×1
hashcode ×1
integer ×1
iphone ×1
string ×1
web-services ×1