/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Licensfil i Java
Fra : Kenneth Brun Nielsen


Dato : 06-09-07 16:08

Jeg er ved at faerdiggoere en applikation, som skal bruges af 20-25
brugere. Den er betalingsfri, men jeg vil godt holde styr paa, hvem
der bruger den af forskellige aarsager.

I den forbindelse, vil jeg gerne have ideer til en maade, hvor jeg
selv kan styre hvem, der faar adgang til at bruge det - eksempelvis
for at undgaa at brugerne sender kopier til deres bekendte uden mit
kendskab.

Jeg forestiller mig noget med at man genererer en (hash-) vaerdi udfra
et personligt password og PC'ens serielnummer - og sammenligner denne
vaerdi med en pre-genereret vaerdi i en "licens-fil". Jeg ved godt at
jeg faar en ekstra administrationsbyrde med at generere disse filer
m.v., men det bekymrer mig ikke i denne sammenhaeng.

Nogen gode forslag? Kan jeg faa fat i serielnummeret paa PC'en gennem
Java?

/Kenneth


 
 
Thorbjørn Ravn Ander~ (06-09-2007)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 06-09-07 16:34

Kenneth Brun Nielsen <kenneth.brun.nielsen@googlemail.com> writes:

> Nogen gode forslag? Kan jeg faa fat i serielnummeret paa PC'en gennem
> Java?

Hvis du skal ud over hvad der er af muligheder i standardbiblioteket
(hvilket dette sandsynligvis er) skal du hen og bruge C kode via JNI
og så har du bundet dig til en speciel platform - det ladet det dog
til du ikke har problemer med i netop dette scenarie.

Et bedre bud var at lade den ringe hjem via Internettet og få en
IP-adressespecifik kode, som den skal kunne lide for at fortsætte.

Hvorfor vil du have styr på det? Der er måske bedre måder at gøre
rtingene på.
--
Thorbjørn Ravn Andersen

Kenneth Brun Nielsen (06-09-2007)
Kommentar
Fra : Kenneth Brun Nielsen


Dato : 06-09-07 16:48

On 6 Sep., 17:33, nospam0...@gmail.com (Thorbjørn Ravn Andersen)
wrote:
> Kenneth Brun Nielsen <kenneth.brun.niel...@googlemail.com> writes:
>
> > Nogen gode forslag? Kan jeg faa fat i serielnummeret paa PC'en gennem
> > Java?
>
> Hvis du skal ud over hvad der er af muligheder i standardbiblioteket
> (hvilket dette sandsynligvis er) skal du hen og bruge C kode via JNI
> og så har du bundet dig til en speciel platform - det ladet det dog
> til du ikke har problemer med i netop dette scenarie.

Det vil godt nok vaere anbefalelsesvaerdig, hvis vi kan holde os til
Java.

> Et bedre bud var at lade den ringe hjem via Internettet og få en
> IP-adressespecifik kode, som den skal kunne lide for at fortsætte.

Hmm. Jeg vil helst undgaa dette. Det ender bare med at folk, der
sidder bag proxy'er og lign., bliver irriterede over omstaendigheden.

> Hvorfor vil du have styr på det? Der er måske bedre måder at gøre
> rtingene på.

Vi samler statistik over et omfattende for-sjov-webspil for at
blotlaegge baggrundsparametrene. Vi er dog ikke de eneste paa
omraadet, saa det er interessant at tilbyde et program til
medlemmerne, som en "gulerod", de ikke kan faa hos konkurrenterne.
Alle kan til- og framelde sig til enhver tid, saa hvis vi publicerer
"ukodet" software, bliver det spredt i loebet af ingen tid.

Det er ren forfaengelighed - og sikkerhedskodningen behoever ikke
vaere 256-bit-triple-krypteret-og-jeg-skal-komme-efter-dig - men
alligevel tilstraekkelig til at en programmerings-newbie ikke kan
omgaa den paa fem minutter.

/Kenneth


Thorbjørn Ravn Ander~ (06-09-2007)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 06-09-07 18:34

Kenneth Brun Nielsen <kenneth.brun.nielsen@googlemail.com> writes:

> Vi samler statistik over et omfattende for-sjov-webspil for at
> blotlaegge baggrundsparametrene. Vi er dog ikke de eneste paa
> omraadet, saa det er interessant at tilbyde et program til
> medlemmerne, som en "gulerod", de ikke kan faa hos konkurrenterne.

Lav det som en applet (evt fuldskærms - kræver 1.5 vistnok), og lad
det gemme highscorer hos jer.

Så skulle det vist være nemt at dele med andre (send URL'en) og der er
ikke meget spas i at spille det uden adgang til nettet.

Bemærk iøvrigt at det er trivielt enkelt at bringe de fleste
javaprogrammer tilbage til noget læsbart hvis I har noget
konkurrenterne ikke må se. I så fald overvej flash.
--
Thorbjørn Ravn Andersen

Kenneth Brun Nielsen (06-09-2007)
Kommentar
Fra : Kenneth Brun Nielsen


Dato : 06-09-07 17:27

On 6 Sep., 17:33, nospam0...@gmail.com (Thorbjørn Ravn Andersen)
wrote:

> Der er måske bedre måder at gøre
> rtingene på.

Jeg har taenkt lidt over tingene - og er kommet frem til, at der i
hvert fald, er NEMMERE maader.

Jeg kan godt adskille brugerne, idet jeg, fra programmet, har
laeseadgang til en database (paa bruger-PC'en), der indeholder deres
brugernavn (det kan de selvfoelgelig aendre, men det smuthul kan jeg
leve med). Paa denne maade kan jeg godt tjekke brugeren. Tilbage er
saa at faa det kodet sammen med en tidsvaerdi (programmet kan
eksempelvis vaere gyldigt et kvartal af gangen, derefter skal der
genereres en ny kode).

Er der nogen generel maade, at goere dette paa? Det gammelkendte
smuthul med at saette PC'ens ur lidt tilbage, er vel svaert at komme
udenom? (i saa fald, maa jeg leve med det)

Min endelige procedure bliver noget i retning af:

licenseString = readFromFile("licensfil.dat");
checkString =
hashFunction(getUserFromDB(),getNextQuarterStart(getTime()),getPassword());
if (licenseString == checkString) {
runProgram();
}
else
exit();

Lad mig vide, hvis det lyder til at vaere helt i skoven


Michael Rasmussen (06-09-2007)
Kommentar
Fra : Michael Rasmussen


Dato : 06-09-07 18:05

On Thu, 06 Sep 2007 09:26:53 -0700
Kenneth Brun Nielsen <kenneth.brun.nielsen@googlemail.com> wrote:

>
> Er der nogen generel maade, at goere dette paa? Det gammelkendte
> smuthul med at saette PC'ens ur lidt tilbage, er vel svaert at komme
> udenom? (i saa fald, maa jeg leve med det)
Du kunne jo også generere en hash af senest anvendte tid, og gemme den
i databasen. Herefter kan du aflæse nuværende tid, trække
tidsintervallet fra, generere endnu en hash, og så lave en
sammenligning. Det er ikke bullet proof, men brugeren skal være yderst
kyndig, hvis man skal lege med tiden. En problem er dog, hvis
computerens tid ikke går nøjagtig, eller den af forskellige årsager
bliver resat.

--
Hilsen/Regards
Michael Rasmussen
http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE3E80917
A computer is like air conditioning: it becomes useless when you open
windows.

MooreHojer (06-09-2007)
Kommentar
Fra : MooreHojer


Dato : 06-09-07 20:42

> Nogen gode forslag? Kan jeg faa fat i serielnummeret paa PC'en gennem
> Java?

Er selv blevet foreslået denne metode, men har dog aldrig selv brugt den
da jeg fandt en anden løsning.

http://java.sun.com/javase/6/docs/api/java/net/NetworkInterface.html#getHardwareAddress()

metoden er dog ikke bulletproof

--
MooreHojer

Kenneth Brun Nielsen (06-09-2007)
Kommentar
Fra : Kenneth Brun Nielsen


Dato : 06-09-07 22:51

On 6 Sep., 19:05, Michael Rasmussen <m...@miras.org> wrote:
> On Thu, 06 Sep 2007 09:26:53 -0700
> Kenneth Brun Nielsen <kenneth.brun.niel...@googlemail.com> wrote:
>
>
>
> > Er der nogen generel maade, at goere dette paa? Det gammelkendte
> > smuthul med at saette PC'ens ur lidt tilbage, er vel svaert at komme
> > udenom? (i saa fald, maa jeg leve med det)
>
> Du kunne jo også generere en hash af senest anvendte tid, og gemme den
> i databasen. Herefter kan du aflæse nuværende tid, trække
> tidsintervallet fra, generere endnu en hash, og så lave en
> sammenligning. Det er ikke bullet proof, men brugeren skal være yderst
> kyndig, hvis man skal lege med tiden. En problem er dog, hvis
> computerens tid ikke går nøjagtig, eller den af forskellige årsager
> bliver resat.

Glimrende idé - som jeg da vist også har hørt om før, når jeg nu
tænker efter.

Tak!

/Kenneth


Kenneth Brun Nielsen (06-09-2007)
Kommentar
Fra : Kenneth Brun Nielsen


Dato : 06-09-07 23:04

On 6 Sep., 19:34, nospam0...@gmail.com (Thorbjørn Ravn Andersen)
wrote:
> Kenneth Brun Nielsen <kenneth.brun.niel...@googlemail.com> writes:
>
> > Vi samler statistik over et omfattende for-sjov-webspil for at
> > blotlaegge baggrundsparametrene. Vi er dog ikke de eneste paa
> > omraadet, saa det er interessant at tilbyde et program til
> > medlemmerne, som en "gulerod", de ikke kan faa hos konkurrenterne.
>
> Lav det som en applet (evt fuldskærms - kræver 1.5 vistnok), og lad
> det gemme highscorer hos jer.

Det er, i nærværende tilfælde, at skyde gråspurve med kanoner. Sagen
er den - i korte træk - at man skal være certificeret for at hente
spil-data på XML-format. Disse certificeringer hænger ikke på træerne
(og der har været lukket på den front, mens jeg har deltaget i
spillet). Heldigvis eksisterer der et rigtig godt og meget populært
program, som udover at hente data og foretage processering også gemmer
dataene i en (Java-baseret) HSQL-database (se også midt spørgsmål i
tidligere tråd).

Og så er vi fremme ved sagens kerne: nemlig at jeg har lavet en lille
applikation, som kan forbinde til selvsamme database (placeret på
brugerens PC) og generere data i pasende kolonner. Slutteligt postes
de relevante kolonner på tekstformat gennem et webinterface - og "den
store dataindsamler" kan analysere det matematisk og plotte nogle
farverige kurver.

En Applet vil være lækkert til både at hente og upload'e data, men med
mine støvede Java-kundskaber må det blive version 2.0

> Bemærk iøvrigt at det er trivielt enkelt at bringe de fleste
> javaprogrammer tilbage til noget læsbart hvis I har noget
> konkurrenterne ikke må se. I så fald overvej flash.

Det er OK. Programmet er så simpelt, at enhver, der kan decompile og
fatte resultatet, selv vil kunne kode det selv i løbet af nogle timer.

Tak for inputs!

/Kenneth


Kenneth Brun Nielsen (06-09-2007)
Kommentar
Fra : Kenneth Brun Nielsen


Dato : 06-09-07 23:06

On 6 Sep., 21:41, MooreHojer <si...@moorehojer.dk> wrote:
> > Nogen gode forslag? Kan jeg faa fat i serielnummeret paa PC'en gennem
> > Java?
>
> Er selv blevet foreslået denne metode, men har dog aldrig selv brugt den
> da jeg fandt en anden løsning.
>
> http://java.sun.com/javase/6/docs/api/java/net/NetworkInterface.html#...()

Interessant. Så kan man bruge MAC-adresse istedet - selvfølgelig! Jeg
er dog i mellemtiden blevet forelsket i det med at læse brugernavnet
fra databasen, fordi det gør programmet meget fleksibel overfor
brugerens gøren og laden.

Men i andre sammenhænge vil det være nyttigt.

Takker.

/Kenneth


Nicholas Clarke (07-09-2007)
Kommentar
Fra : Nicholas Clarke


Dato : 07-09-07 01:02



Michael Rasmussen (07-09-2007)
Kommentar
Fra : Michael Rasmussen


Dato : 07-09-07 23:31

On Thu, 06 Sep 2007 23:58:02 +0200
Michael Zedeler <michael@zedeler.dk> wrote:

>
> Nu er det ikke mig der har stillet det oprindelige spørgsmål, men det
> lyder interessant - hvad er det for en idé med at stoppe
> tidsintervaller igennem hashfunktioner? Hvornår er det at programmet
> kan opdage at brugeren har stillet på tiden?
>
Er spørgsmålet rettet mod OP eller mig?

--
Hilsen/Regards
Michael Rasmussen
http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE3E80917
A computer is like air conditioning: it becomes useless when you open
windows.

Søg
Reklame
Statistik
Spørgsmål : 177422
Tips : 31962
Nyheder : 719565
Indlæg : 6407884
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste