Voisiko joku asiantuntija ratkaista seuraavanlaisen kohtaamani tehtävän?
Lainaus tehtävästä:
"Ota avainanoista SHA1-tarkistussummat, esimerkiksi unix-komennolla:
echo -n "avainsana123" | sha1sum
Ylläoleva esimerkki antaa:
9f541f2034e1b8bdd832510e09d7e281c6cebbf4 -"
Sain netistä ongittua ja muutettua kolmen vaaditun avainsanan SHA1tarkistussummat, jotka ovat:
e2ed24d5f7c8f5dbb27c07420d422465fb2830fe
263f17452f730eca47368bfbd98841a99983a00a
c3be649b4930fd0ba8d2fef256bba8f6f503b26f
Tehtävä jatkuu:
"Näit saat kolme 40-merkkiä pitkää heksadesimaalista lukua (A, B, C), jotka yhdistät xor-operaatiolla yhdeksi yhtäpitkäksi heksaluvuksi (D):
A xor B xor C = D
Yhdistämällä tämä saatu yhdistelmäluku (D) seuraavan heksaluvun kanssa xor-operaattorilla:
f893a8fdcc88a73fa2678dbba7a3b779c857dd64,
kanssa saat tulokseksi heksadesimaalisen luvun, minkä?. Esimerkiksi tyyliin:
4321eeeee65d01a234bbbbb25d23a456ffff5432.
Lainaus tehtävästä:
"Ota avainanoista SHA1-tarkistussummat, esimerkiksi unix-komennolla:
echo -n "avainsana123" | sha1sum
Ylläoleva esimerkki antaa:
9f541f2034e1b8bdd832510e09d7e281c6cebbf4 -"
Sain netistä ongittua ja muutettua kolmen vaaditun avainsanan SHA1tarkistussummat, jotka ovat:
e2ed24d5f7c8f5dbb27c07420d422465fb2830fe
263f17452f730eca47368bfbd98841a99983a00a
c3be649b4930fd0ba8d2fef256bba8f6f503b26f
Tehtävä jatkuu:
"Näit saat kolme 40-merkkiä pitkää heksadesimaalista lukua (A, B, C), jotka yhdistät xor-operaatiolla yhdeksi yhtäpitkäksi heksaluvuksi (D):
A xor B xor C = D
Yhdistämällä tämä saatu yhdistelmäluku (D) seuraavan heksaluvun kanssa xor-operaattorilla:
f893a8fdcc88a73fa2678dbba7a3b779c857dd64,
kanssa saat tulokseksi heksadesimaalisen luvun, minkä?. Esimerkiksi tyyliin:
4321eeeee65d01a234bbbbb25d23a456ffff5432.
Vastaukset 8
Vanhimmat
Mitä vastaus hyvää jos et osaa tarkistaa onko se ees oikein ;)
olkoot vaikka!
fffffff65d03a125fffffff025d27a435fffffff
Pikaisesta vastauksestasi! Vastauksesi oikeellisuuden tarkistan lähipäivinä käymällä lukujen mukaisessa paikassa! Nimittäin tämä oli tehtävä selvittää kolmessa eri paikasta haettujen "avainsanojen" perusteella ratkaistava ns. "bonuskätkö", eli kätkön sijainnin koordinaatit! Kysymys liittyi harrastukseen nimeltä "Geokätköily"! Tarkistin juuri kartasta että näyttäisi olevan antamasi ratkaisun mukaan todennäköisesti oikea paikka! Tästä sinulle suurkiitos!
Samanpa heksaluvun sain minä tulokseksi
fffffff65d03a125fffffff025d27a435fffffff
Tietysti tuohan pitäisi normaalisti muuttaa 10-järjestelmän luvuksi ellei se GPS toimi heksadesimaalijärjestelmässä :-)
10-järjestelmän lukuna tuo on
1461501634051716297971489341914037147470389051391
olivat oikein! Kävin kyseisessä paikassa ja sieltähän se oikea paikka löytyi, Kiitos teille!
Esimerkiksi Javan BigInteger-luokasta löytyy tarvittavat toiminnot
http://java.sun.com/j2se/1.4.2/docs/api/java/math/BigInteger.html
Muodostimessa voi antaa radix 16 jos alustetaan heksaluvulla
public BigInteger(String val, int radix)
XOR-operaatio
public BigInteger xor(BigInteger val)
Merkkijonoksi muodostettaessa voidaan antaa radix 16
public String toString(int radix)
Turhan hankalaa tuo on tehdä Javalla. Helpommin ja nopeammin onnistuu jos väline tukee oletuksena suuria lukuja, vaikkapa Python-tulkissa. Laittaa tulkiin vain:
hex((0xe2ed24d5f7c8f5dbb27c07420d422465fb2830fe ^ 0x263f17452f730eca47368bfbd98841a99983a00a ^ 0xc3be649b4930fd0ba8d2fef256bba8f6f503b26f) ^ 0xf893a8fdcc88a73fa2678dbba7a3b779c857dd64)
(hex pois jos halutaan 10-järjestelmässä)
Tämä nipotus vain opetuksena että riippuu ongelmasta mikä työkalu kannattaa valita.
Varsin helppo toteuttaa Javalla. Lisäksi Java-toteutus on tuohon nähden myös _helppolukuinen_.
No voihan sen koodata tiedostoon tai näpyttää tulkkiin:
A = 0xe2ed24d5f7c8f5dbb27c07420d422465fb2830fe
B = 0x263f17452f730eca47368bfbd98841a99983a00a
C = 0xc3be649b4930fd0ba8d2fef256bba8f6f503b26f
D = A ^ B ^ C
tulos = D ^ 0xf893a8fdcc88a73fa2678dbba7a3b779c857dd64
print hex(tulos)
Saatko Javalla helppolukuisemman?