Android App-Entwicklung / SHA-512 Hashgenerierung

  • Antworten:9
  • Bentwortet
Thor93
  • Forum-Beiträge: 487

15.02.2012, 15:15:20 via Website

Hey Leute,

ist euch eine Möglichkeit bekannt wie ich einen Hashcode(SHA-512) generieren lassen kann.
Ich programmiere mit Java in Eclipse, es soll eine Erweiterung zur meiner AndroidApp werden. (Die App kann die Android Id auslesen und anzeigen lassen)
Nun soll die App aus der AndroidId und der Utc Einen Hashcode generieren.
Ist das für Android möglich ? Wenn ja wie?
ich habe Google gefragt und einiges ausprobiert aber das meinste war fürn A*******.

Jedem das Seine, doch Mir das Meine

Antworten
Rafael K.
  • Forum-Beiträge: 2.359

15.02.2012, 15:29:55 via Website

Alexander M.
ich habe Google gefragt und einiges ausprobiert aber das meinste war fürn A*******.
Ich glaube du müsstest mal mit Google einen trinken gehen...ihr steht scheinbar noch auf Kriegsfuß :D

Mir sagt Google das hier:

http://www.mkyong.com/java/java-sha-hashing-example/

http://developer.android.com/reference/java/security/MessageDigest.html

Ansgar M

Antworten
Thor93
  • Forum-Beiträge: 487

17.02.2012, 07:16:24 via Website

Erst einmal Danke für deine Schnelle Antwort.

Ich habe nun gestern den ganzen Tag rum probiert und versucht ohne ende.

1package Geraeteid.auslesen;
2
3import java.security.MessageDigest;
4
5import android.app.Activity;
6import android.os.Bundle;
7import android.view.View;
8import android.view.View.OnClickListener;
9import android.widget.Button;
10import android.widget.TextView;
11
12
13public class GeraeteidActivity extends Activity
14implements OnClickListener{
15 /** Called when the activity is first created. */
16
17
18 private Button Geraete_ID;
19
20 @Override
21 public void onCreate(Bundle savedInstanceState) {
22 super.onCreate(savedInstanceState);
23 setContentView(R.layout.main);
24
25 Geraete_ID = (Button)findViewById(R.id.button1);
26 Geraete_ID.setOnClickListener(this);
27 }
28
29 public void onClick(View v)
30 {
31 final String androidId;
32 androidId = " " + android.provider.Settings.Secure.getString(getContentResolver(), android.provider.Settings.Secure.ANDROID_ID);
33
34 TextView tvid = new TextView(this);
35 tvid.setText("ID: " + androidId);
36 setContentView(tvid);
37
38 MessageDigest digester = MessageDigest.getInstance("SHA-512");
39 byte[] bytes = new byte[8192];
40 int byteCount;
41 while ((byteCount = in.read(bytes)) > 0) {
42 digester.update(bytes, 0, byteCount);
43 }
44 byte[] digest = digester.digest();
45
46
47 }
48
49}

wo liegt mein Fehler??
Das Unterstrichene zeigt er immer als Fehler an.
Gruß alex

Jedem das Seine, doch Mir das Meine

Antworten
Klaus T.
  • Forum-Beiträge: 8.183

17.02.2012, 08:26:54 via Website

1while ((byteCount = in.read(bytes)) > 0) {

"in cannot be resolved?" oder was klagt Eclipse?

"in" ist echt nirgends definiert, oder bin ich blind?
Falls nicht, muss natürlich noch irgendeine Art von InputStream rein: FileInputStrem, ByteArryInputStream,...

1FileInputStream in = new FileInputStream("DateiName");

B)

if all else fails, read the instructions.

Antworten
Jochen Rühl
  • Forum-Beiträge: 133

17.02.2012, 08:34:36 via Website

Der InputStream in wird nirgendwo instanziiert (zumindest hab ich es nicht gefunden).
Falls Du nur einen String verwendest, kannst Du Dir den InputStream ganz sparen.
Dann geht es auch so:

1digester.update("Hello World!".getBytes());

Antworten
Thor93
  • Forum-Beiträge: 487

17.02.2012, 08:55:11 via Website

1FileInputStream in = new FileInputStream()

das kann ich glaub ich nicht verwenden, weil ich ja einen Hash aus der jeweiligen AndroidId und der UTC machen wollte.

Also
AndroidID: 87857f7ba31f609

UTC: 17. Februar 2012 8:53:30 Uhr

Damit folgende Eingangszeichenfolge für SHA512:

87857f7ba31f6091702201285330

SHA512:

386ef57b248dfb013f4625c6658c6051020a5da90ad36c11a60c74c898e27e35
ea2be7f4b04670e0874674b745e5e7f5914571cfea0ca9b208fbc2a68cfa0171

Jedem das Seine, doch Mir das Meine

Antworten
Thor93
  • Forum-Beiträge: 487

17.02.2012, 10:22:15 via Website

Keiner eine Idee?

Jedem das Seine, doch Mir das Meine

Antworten
Klaus T.
  • Forum-Beiträge: 8.183

17.02.2012, 10:26:08 via Website

Alexander M.
Keiner eine Idee?

Mit der Logik deines Programms musst du dich schon selbst auseinandersetzen.... :grin:

if all else fails, read the instructions.

Antworten
Thor93
  • Forum-Beiträge: 487

17.02.2012, 10:30:08 via Website

ja nur bei mir hängt es gerade :( :blink:

Jedem das Seine, doch Mir das Meine

Antworten
Jochen Rühl
  • Forum-Beiträge: 133

18.02.2012, 07:34:31 via Website

Was spricht dagegen das Ganze so zu machen?

1String input = "87857f7ba31f6091702201285330";
2digester.update(input.getBytes());
3byte[] digest = digester.digest();

Antworten