Page 1 of 1

Mahdollista?

Posted: Sun Oct 28, 2007 4:13 pm
by Deathjester
Onko muuten Coolbasicilla mahdollista tehdä salasanasuojauksia?... Hmmm, en tiedä kuinka selittää, mutta siten että se kysyisi salasanaa jatkaakseen, ja siihen kävisi vain tietty salasana? Jos on, miten?
Kiitos avustasi.

Re: Mahdollista?

Posted: Sun Oct 28, 2007 4:44 pm
by Viltzu
Tälleen voi tehdä jonkinlaisen salasana systeemin:

Code: Select all

salasana$="Päivää"

Repeat
c$=Input ("kirjoita salasana>>")
DrawScreen
Until KeyHit (28)

If c$=salasana$ Then Print "oikea salasana"
WaitKey 

Re: Mahdollista?

Posted: Sun Oct 28, 2007 5:08 pm
by atomimalli
Kun osaa vaan ohjelmoida, niin ei edes tarvitse kysyä, mikä on mahdollista. Nekin asiat, mitä täällä on joskus sanottu coolbasicilla mahdottomaksi, on kumminkin tehty. Ainoastaan nopeus on ollut rajoittavana tekijänä monimutkaiseemmissa jutuissa.

Esimerkiksi väite että kunnon 3d on mahdotonta...
Tässä kuva coolbasicilla tehdystä 3d kuvasta.
(kiitokset harakalle)
Image (vaaleat pilkut oisi saanut pois yhtä riviä muuttamalla, mutta unohdin sen)
Nopeus vain on mitä on, coolbasicia ei nimittäin ole tarkoitettu ihan tähän.
Tämähän vaatii niin monimutkaista matematiikkaa, ettei ole yrittämistä ennenkuin on tarpeeksi kokemusta, ja tietää mitä tekee.

Nettipelitkin ovat nykyään mahdollisia, tarpeeksi kokeneiden käsissä.

Ja puoli 3d(illuusio kolmiulotteisuudesta, mutta sisältää mm. rajoitteita kuvakulmien suhteen.) onnistuu hyvillä nopeuksilla.

Eli parin vuoden kokemuksen jälkeen osa koodareista alkaa tehdä mahdottomia, koska koodarit yleensä pitävät haasteista.

Re: Mahdollista?

Posted: Sun Oct 28, 2007 6:26 pm
by Juhoman
aika hieno toi 3D juttu.. Tosiaan.. täytyy kokeilla tota salasana hommaa... Kiitokset!

Re: Mahdollista?

Posted: Mon Oct 29, 2007 12:27 pm
by anttipanda
atomimalli wrote:Kun osaa vaan ohjelmoida, niin ei edes tarvitse kysyä, mikä on mahdollista.
Deathjester wrote:Onko muuten Coolbasicilla mahdollista tehdä salasanasuojauksia?... Hmmm, en tiedä kuinka selittää, mutta siten että se kysyisi salasanaa jatkaakseen, ja siihen kävisi vain tietty salasana? Jos on, miten?
Kiitos avustasi.
Itse asiassa tuo kysymys on erittäin hyvä. Hidastavan salasanakyselyn tekeminen on helppoa, mutta estävän sitäkin vaikeampaa. Ongelma on siinä, mihin "oikea vastaus" tallennetaan. Jos salasanan kirjoittaa suoraan lähdekoodiin (tai hajottaa sinne), saadaan salasana selville jopa niin yksinkertaisesti kuin aukaisemalla exe heksaeditoriin ja lukaisemalla sieltä. Joka tapauksessa jos salasanan sisällyttää .exeen, se ei ole ikinä turvassa. Ensinnäkin se on helppo onkia esille, ja toiseksi kun se on ongittu esille se on kaikkien tiedossa. Jos halutaan oikeasti toimiva salasana, käyttäjän pitää antaa se itse, ja se pitää tallentaa varmaan paikkaan. CoolBasicilla itsessään EI pysty tallentamaan salasanaa varmaan paikkaan, joka käsittääkseni Windowsissa on CryptoAPI. Eikä salasanoja sellaisenaan tallenneta mihinkään, ainakaan missään vakavasti otettavassa järjestelmässä ;)
Nekin asiat, mitä täällä on joskus sanottu coolbasicilla mahdottomaksi, on kumminkin tehty.
Kyllä. Mutta kaikessa on pitänyt käyttää lisäkilkkeitä ja/tai sitten suorituskyky on alentunut käyttökelvottomalle tasolle. Salasanojen kanssa suorituskyvyllä ei onneksi ole väliä, kunhan homma hoituu muutaman sekunnin sisällä.

Re: Mahdollista?

Posted: Tue Oct 30, 2007 12:35 pm
by Jare
anttipanda wrote:Eikä salasanoja sellaisenaan tallenneta mihinkään, ainakaan missään vakavasti otettavassa järjestelmässä ;)
Aivan. Mutta olisiko salasanan tallentaminen exeen turvallista, jos siitä lasketaan tarkistussumma, joka tallennetaan salasanan sijasta? Näinhän on yleisenä käytäntönä, joten eikös se ole turvallista myös näiden exe-tiedostojen kohdalla?

Ja muistanko väärin vai kryptaako cb jotenkin käännetyn koodin (myös stringit) niin ettei tekstiä voi helposti lukea?

Re: Mahdollista?

Posted: Tue Oct 30, 2007 3:10 pm
by Bagard
Jare wrote:
anttipanda wrote:Eikä salasanoja sellaisenaan tallenneta mihinkään, ainakaan missään vakavasti otettavassa järjestelmässä ;)
Aivan. Mutta olisiko salasanan tallentaminen exeen turvallista, jos siitä lasketaan tarkistussumma, joka tallennetaan salasanan sijasta? Näinhän on yleisenä käytäntönä, joten eikös se ole turvallista myös näiden exe-tiedostojen kohdalla?

Ja muistanko väärin vai kryptaako cb jotenkin käännetyn koodin (myös stringit) niin ettei tekstiä voi helposti lukea?
MD5 ja hyvä suolaus olisi varmasti ihan riittävä suojaus näihin piireihin ;)

MD5-funktio: http://cbkk.systec.fi/koodi.php?id=102

Pieni esimerkki (ei suolausta):

Code: Select all

logged = False

Repeat
    
    If (logged = False)
        salasana$ = Input("Syötä salasana: ", "*")
    
        If KeyHit(cbkeyreturn)
            CloseInput
            ClearKeys
            
            If (MD5(salasana$) = "e7e941b1f09f266540c6780db51d5f58") Then
                logged = True
            EndIf
        EndIf
    Else
        Text 0, 0, "Salasana oikein"
    EndIf
    
    DrawScreen

Forever

Re: Mahdollista?

Posted: Wed Oct 31, 2007 10:08 am
by anttipanda
Aivan. Mutta olisiko salasanan tallentaminen exeen turvallista, jos siitä lasketaan tarkistussumma, joka tallennetaan salasanan sijasta? Näinhän on yleisenä käytäntönä, joten eikös se ole turvallista myös näiden exe-tiedostojen kohdalla?
No eihän tuo turvallista ole jos oikein ajatellaan, mutta kuten Bagard sanoi, tarpeeksi turvallista näihin piireihin (= oman pelin salasanaksi). Mutta edes salasanatiivisteet eivät saa vuotaa julki jos halutaan oikeasti turvallinen järjestelmä, esim jos salasanan takana säilytetään luottokorttitietoja ym sellaista. Jos saat selville tiivisteen, pystyt selvittämään salasanan suhteellisen nopeasti. Sillä salasanat ovat edelleen yleensä lyhyitä ja usein sanakirjahyökkäyksen avulla voidaan vähentää arvauksien lukumäärää.

Re: Mahdollista?

Posted: Fri Nov 02, 2007 5:12 pm
by MaGetzUb
Anteeks ku en tiiä kui vanha tää topickki on (en katsonut), mutta Atomimalli viittisikkö näyttää tuon 3D maiseman lähekoodin :D ? Se oli hieno
Offtopick: srry ei ollu tarkootus pistää tänne mitää salasana systeemiä ;)