Anmäl dig till Roborock Challenge!

Enc: en krypterad meddelandetjänst baserat på engångslänkar

Permalänk
Medlem
Skrivet av KAD:

Ett tips kan ju vara att lära sig lite av historien. Problemet du försöker lösa är redan löst, mycket bättre och pålitligare, sedan årtionden tillbaka.

Eftersom man inte vill lita på slumpmässig klåparunge på internet så använder man antagligen beprövad mjukvara om man ska kryptera något. Till exempel openssl eller gpg. När man har krypterat sitt meddelande kan man använda vilken överföringsmekanism som helst - e-post, SMS, pastebin, sprend, brevduva - för att överföra meddelandet. Man behöver ingen speciellt anpassad webbsida för det.

Du sitter garanterat på Windows. Om du hade kört ett vettigt OS så hade du haft dessa standardiserade verktyg inom kort räckvidd och kunnat läsa manualerna för dem och förstått vilka principer de vilar på.

Häftigt att ha läst den här tråden och slås av tanken "Det den här tråden verkligen saknar är en rejäl skopa elitism, det kan jag bistå med".

Visa signatur

Raven RV02-e // 2500k@4.5GHz // 16GB 1866MHz // Sapphire 390// AX1200 // Silver Arrow // AsRock p76 E4 Gen 3 // Majestouch 2, bruna // 128GB Crucial m4 som systemdisk, 2TB WD Green som lagring och BX100 250GB för spel // ATH-m50x

AW 14
"Citera" för svar

Permalänk
Medlem
Skrivet av Airikr:

Jag försöker lära mig nya saker inom programmering och försöker göra det så bra som möjligt från mig. Att publicera mina projekt här på SweClockers Forum (Enc är inte det första projektet jag har utannonserat här) hjälper mig att bli bättre för ni ger mig nödvändig information om hur jag kan bli bättre.

Jag antog den här utmaningen med att skapa Enc för att kunna bestämma själv över min egna data, att känna en frihet till att kunna kontakta andra på ett mycket säkert sätt, oavsett social tjänst över internet. Samtidigt vill jag att andra ska kunna känna samma sak. Jag mår bra av sånt.

Min dag började väldigt dåligt på grund av en granne, och ditt inlägg gjorde inte mitt mående bättre. Tack.

Jag tycker du gör helt rätt i att försöka lära dig nya saker genom att implementera dem. Det kräver en hel del mod att publicera sina projekt just på grund av risken att få helt toxisk feedback, så jag hoppas du inte blir avskräckt av en dålig upplevelse.

Som feedback på ditt projekt tycker jag att du bör lägga till en banner eller en startsida som säger att detta är ett personligt lärandeprojekt och används på egen risk. Det finns, som redan nämnts, flertalet brister i säkerheten. Sannolikheten att en slumpmässig person trillar in på din sida och försöker nyttja den är försvinnande liten, men du har ett ansvar för tjänster du publicerar och bör anta att någon kommer använda dem, även om så inte sker i praktiken. Här vet du att du inte riktigt vet vad du pysslar med (ännu, poängen är ju att du lär dig!), och det är helt okej, men se till att potentiella användare också gör det!

Lycka till med lärandet, hoppas din dag vänder!

Permalänk
Medlem
Skrivet av SimpLar:

Jag tycker du gör helt rätt i att försöka lära dig nya saker genom att implementera dem. Det kräver en hel del mod att publicera sina projekt just på grund av risken att få helt toxisk feedback, så jag hoppas du inte blir avskräckt av en dålig upplevelse.

Som feedback på ditt projekt tycker jag att du bör lägga till en banner eller en startsida som säger att detta är ett personligt lärandeprojekt och används på egen risk. Det finns, som redan nämnts, flertalet brister i säkerheten. Sannolikheten att en slumpmässig person trillar in på din sida och försöker nyttja den är försvinnande liten, men du har ett ansvar för tjänster du publicerar och bör anta att någon kommer använda dem, även om så inte sker i praktiken. Här vet du att du inte riktigt vet vad du pysslar med (ännu, poängen är ju att du lär dig!), och det är helt okej, men se till att potentiella användare också gör det!

Lycka till med lärandet, hoppas din dag vänder!

Tack. Ska lägga in ett sådant meddelande. Det är ett viktigt meddelande, men nu är måendet ännu värre efter nya saker från grannens håll.

Visa signatur

Citera mig om du vill att jag ska hitta till ditt svar.
airikr.me. Andra projekt: Keizai, Koroth, Serenum & Enc.

Permalänk
Medlem
Skrivet av KAD:

Du sitter garanterat på Windows. Om du hade kört ett vettigt OS så hade du haft dessa standardiserade verktyg inom kort räckvidd och kunnat läsa manualerna för dem och förstått vilka principer de vilar på.

Är bra om man är lite ödmjuk och inte kastar ur sig fördomar så där. Tänk vad mycket trevligare världen skulle vara med lite mer ödmjukhet.

Visa signatur

JJ2 Multiplayer
JJ2 ZStats

[1] Ryzen 5800X | 5500XT | Kingston A2000 | Lenovo G24-10 144Hz [2] Ryzen 5700G | RX 480 | WD Blue SN550 [3] Ryzen 5600G | Kingston A2000 [4] Ryzen 3600 | GT 740 | 850 EVO [5] Ryzen 3600 | Geforce 405 | 850 EVO (alla är i bruk)

Permalänk
Medlem
Skrivet av Airikr:

Tack. Ska lägga in ett sådant meddelande. Det är ett viktigt meddelande, men nu är måendet ännu värre efter nya saker från grannens håll.

Ta det lugnt. Det är ingenting som brinner i knutarna. Som sagt är sannolikheten att någon bara trillar in utan att ha kommit härifrån försvinnande liten, näst intill obefintlig. Det är bara en hygienfaktor som jag tycker borde finnas där.

Som en avslutande fotnot finns många här på forumet som genuint vill hjälpa till (och har mer användbar feedback än "lägg till en banner" ), så jag hoppas du fortsätter publicera dina projekt och be om feedback.

Permalänk
Medlem

Tjohejsan! Har nu lyckats kryptera meddelandet och hashat lösenordet innan $.ajax() körs. Har laddat upp ändringarna och vill veta från er om allt funkar som det ska nu Ska finslipa allt annat sen.

https://enc.airikr.me

Visa signatur

Citera mig om du vill att jag ska hitta till ditt svar.
airikr.me. Andra projekt: Keizai, Koroth, Serenum & Enc.

Permalänk
Medlem
Skrivet av Airikr:

Tjohejsan! Har nu lyckats kryptera meddelandet och hashat lösenordet innan $.ajax() körs. Har laddat upp ändringarna och vill veta från er om allt funkar som det ska nu Ska finslipa allt annat sen.

https://enc.airikr.me

Snyggt, men som andra har sagt, för att öka säkerheten och tilltron till tjänsten så borde du inte skicka med lösenordet till servern.
Om du på servern inte vet vad lösenordet är så vet jag som användare att du inte heller kan läsa meddelandet.

/Viktor

Permalänk
Medlem
Skrivet av vg132:

Snyggt, men som andra har sagt, för att öka säkerheten och tilltron till tjänsten så borde du inte skicka med lösenordet till servern.
Om du på servern inte vet vad lösenordet är så vet jag som användare att du inte heller kan läsa meddelandet.

/Viktor

Tack

Lösenordet hashas med JavaScript och den hashade strängen skickas till servern - aldrig lösenordet. Lösenordet visas dock i klartext i name="hidden-password"[1], som ligger utanför form[2]. Detta för att man ska kunna kopiera lösenordet efter att ha skickat allt till databasen.

Men om lösenordet skickas i klartext till servern trots detta, så får jag ta en närmare titt på det. Jag utgick helt från Request-delen i Network i webbläsarens konsol (i mitt fall, Firefox) när jag fixade till den här uppdateringen.

[1]: https://codeberg.org/airikr/enc/src/branch/main/js/pages/inde...
[2]: https://codeberg.org/airikr/enc/src/branch/main/index.php#L7

Visa signatur

Citera mig om du vill att jag ska hitta till ditt svar.
airikr.me. Andra projekt: Keizai, Koroth, Serenum & Enc.

Permalänk
Medlem
Skrivet av Airikr:

Tack

Lösenordet hashas med JavaScript och den hashade strängen skickas till servern - aldrig lösenordet. Lösenordet visas dock i klartext i name="hidden-password"[1], som ligger utanför form[2]. Detta för att man ska kunna kopiera lösenordet efter att ha skickat allt till databasen.

Men om lösenordet skickas i klartext till servern trots detta, så får jag ta en närmare titt på det. Jag utgick helt från Request-delen i Network i webbläsarens konsol (i mitt fall, Firefox) när jag fixade till den här uppdateringen.

[1]: https://codeberg.org/airikr/enc/src/branch/main/js/pages/inde...
[2]: https://codeberg.org/airikr/enc/src/branch/main/index.php#L7

Vad är vitsen med hashning av lösenordet ö.h.t? (Och att då lagra lösenordet - hashat eller ej)
Kryptera meddelandet med lösenordet så är det väl klart.

Eller menar du att mottagaren sen skickar lösenordet (hashat) till servern, som sen jämför dessa?

Visa signatur

NZXT H510 Flow MSI B450 Tomahawk MAX
AMD Ryzen 5800X3D RX 7900XTX Kingston Fury 64GB
LG C2 42" 4K@120Hz AOC Q27G2U 1440P@144Hz

Permalänk
Medlem
Skrivet av Airikr:

Tack

Lösenordet hashas med JavaScript och den hashade strängen skickas till servern - aldrig lösenordet. Lösenordet visas dock i klartext i name="hidden-password"[1], som ligger utanför form[2]. Detta för att man ska kunna kopiera lösenordet efter att ha skickat allt till databasen.

Men om lösenordet skickas i klartext till servern trots detta, så får jag ta en närmare titt på det. Jag utgick helt från Request-delen i Network i webbläsarens konsol (i mitt fall, Firefox) när jag fixade till den här uppdateringen.

[1]: https://codeberg.org/airikr/enc/src/branch/main/js/pages/inde...
[2]: https://codeberg.org/airikr/enc/src/branch/main/index.php#L7

Nej, det skickas inte med i klartext vad jag kan se så det är bra. Men servern behöver inte alls lösenordet. Allt du behöver skicka till servern är det krypterade meddelandet. Sen dekrypterar du meddelandet på klienten på samma sätt som du krypterade det (eller bakvänt) och använder lösenordet som besökaren angivit utan att det behöver skickas till servern eller att servern behöver veta vad det är.

/Viktor

Permalänk
Medlem
Skrivet av Pamudas:

Vad är vitsen med hashning av lösenordet ö.h.t? (Och att då lagra lösenordet - hashat eller ej)
Kryptera meddelandet med lösenordet så är det väl klart.

Skrivet av vg132:

Nej, det skickas inte med i klartext vad jag kan se så det är bra. Men servern behöver inte alls lösenordet. Allt du behöver skicka till servern är det krypterade meddelandet. Sen dekrypterar du meddelandet på klienten på samma sätt som du krypterade det (eller bakvänt) och använder lösenordet som besökaren angivit utan att det behöver skickas till servern eller att servern behöver veta vad det är.

/Viktor

Det har jag inte tänkt på. Tack Ska se vad jag kan göra.

Skrivet av Pamudas:

Eller menar du att mottagaren sen skickar lösenordet (hashat) till servern, som sen jämför dessa?

Precis. Vet i nuläget inte hur jag ska låta webbsidan jämföra lösenordet som meddelandet och de eventuella filerna krypteras med, med det som mottagaren anger. Men om du vet en lösning på det hela, dela gärna med dig

Visa signatur

Citera mig om du vill att jag ska hitta till ditt svar.
airikr.me. Andra projekt: Keizai, Koroth, Serenum & Enc.

Permalänk
Medlem
Skrivet av KAD:

Ett tips kan ju vara att lära sig lite av historien. Problemet du försöker lösa är redan löst, mycket bättre och pålitligare, sedan årtionden tillbaka.

Eftersom man inte vill lita på slumpmässig klåparunge på internet så använder man antagligen beprövad mjukvara om man ska kryptera något. Till exempel openssl eller gpg. När man har krypterat sitt meddelande kan man använda vilken överföringsmekanism som helst - e-post, SMS, pastebin, sprend, brevduva - för att överföra meddelandet. Man behöver ingen speciellt anpassad webbsida för det.

Du sitter garanterat på Windows. Om du hade kört ett vettigt OS så hade du haft dessa standardiserade verktyg inom kort räckvidd och kunnat läsa manualerna för dem och förstått vilka principer de vilar på.

Finns det något bättre sätt att lära sig programmering än att försöka skriva något som redan existerar. Någonting som man kan jämföra sin kod med och hämta inspiration ifrån. Det vore ju trist om alla nya programmerare måste vidareutveckla någonting helt nytt, likt en forskarexamen. Jag tänker att din inställning till programutveckling kommer från att ha jobbat med stora projekt, t.ex. Stockholms Skolplatform eller liknande.

Permalänk
Medlem
Skrivet av Airikr:

Det har jag inte tänkt på. Tack Ska se vad jag kan göra.

Precis. Vet i nuläget inte hur jag ska låta webbsidan jämföra lösenordet som meddelandet och de eventuella filerna krypteras med, med det som mottagaren anger. Men om du vet en lösning på det hela, dela gärna med dig

Checksum är väl ett alternativ tänker jag.

Skapa en hash av meddelandet innan det krypteras, lagra sedan detta hash bredvid det krypterade meddelandet (t.ex. "2aae6c35c94fcfb415dbe95f408b9ce91ee846ed:[ENCRYPTED_MESSAGE]"). Eftersom du vet vilken hashfunktion du använt så vet du även hur lång text den genererar. Det är alltså relativt enkelt att dela på hashet och den krypterade strängen.

När du sedan avkrypterar meddelandet så hashar du resultatet och jämför med original-hashet
Inga lösenord lagras utan endast det krypterade meddelandet.

Du kan även läsa på om HMAC som är liknande det ovan

Visa signatur

NZXT H510 Flow MSI B450 Tomahawk MAX
AMD Ryzen 5800X3D RX 7900XTX Kingston Fury 64GB
LG C2 42" 4K@120Hz AOC Q27G2U 1440P@144Hz

Permalänk
Medlem
Skrivet av Pamudas:

Checksum är väl ett alternativ tänker jag.

Skapa en hash av meddelandet innan det krypteras, lagra sedan detta hash bredvid det krypterade meddelandet (t.ex. "2aae6c35c94fcfb415dbe95f408b9ce91ee846ed:[ENCRYPTED_MESSAGE]"). Eftersom du vet vilken hashfunktion du använt så vet du även hur lång text den genererar. Det är alltså relativt enkelt att dela på hashet och den krypterade strängen.

När du sedan avkrypterar meddelandet så hashar du resultatet och jämför med original-hashet
Inga lösenord lagras utan endast det krypterade meddelandet.

Låter vettigt Huvudet hänger inte riktigt med nu i vad du menar, men jag kikar på det när jag kan tänka mer klart. Tack

Visa signatur

Citera mig om du vill att jag ska hitta till ditt svar.
airikr.me. Andra projekt: Keizai, Koroth, Serenum & Enc.

Permalänk
Medlem
Skrivet av Pamudas:

Inga lösenord lagras utan endast det krypterade meddelandet.

Har gjort en annan variant nu, istället för ditt förslag. Gjorde så att det hashade lösenordet är med i länken som man delar till mottagaren. Fick ett tips om det från en från XMPP, som delade följande länk som inspiration: https://scrt.link/security. Berätta gärna om detta är en fungerande lösning.

Har även gjort det som @Xcorp önskade: att kunna ange sitt egna lösenord

Visa signatur

Citera mig om du vill att jag ska hitta till ditt svar.
airikr.me. Andra projekt: Keizai, Koroth, Serenum & Enc.

Permalänk
Medlem

Nu har jag släppt en till uppdatering.

Bytte hashmetod för lösenordet från SHA-512 till bcrypt. Att använda SHA-512 gjorde så att minst en person inte kunde komma åt meddelandet och eventuella filer på grund av "fel lösenord". Nu är det löst.

Ett problem återstår dock som jag hoppas löser sig i och med att Enc tar bort alla mellanrum i lösenordet. Problemet är att man fortfarande får "fel lösenord"-meddelandet, trots att man har till synes angett rätt lösenord. Men när jag och personen som buggtestade med mig, testade detta, fick vi båda felmeddelandet endast en gång av minst 5 försök.

Visa signatur

Citera mig om du vill att jag ska hitta till ditt svar.
airikr.me. Andra projekt: Keizai, Koroth, Serenum & Enc.

Permalänk
Medlem
Skrivet av Airikr:

Nu har jag släppt en till uppdatering.

Bytte hashmetod för lösenordet från SHA-512 till bcrypt. Att använda SHA-512 gjorde så att minst en person inte kunde komma åt meddelandet och eventuella filer på grund av "fel lösenord". Nu är det löst.

Ett problem återstår dock som jag hoppas löser sig i och med att Enc tar bort alla mellanrum i lösenordet. Problemet är att man fortfarande får "fel lösenord"-meddelandet, trots att man har till synes angett rätt lösenord. Men när jag och personen som buggtestade med mig, testade detta, fick vi båda felmeddelandet endast en gång av minst 5 försök.

Jag kan låta hård i alla mina svar här, det är inte meningen.
Men varför tar du bort mellanslag i lösenord? Det är ett tecken som vilket annat som helst och ska självklart kunna vara en del av lösenordet.
Och som skrivits flera gånger tidigare, det finns ingen anledning att skicka lösenordet till servern öht, och därmed inte heller någon anledning att hasha det.
Vad använder du hashen i URLen till när den kommer till mottagaren?

Permalänk
Medlem
Skrivet av Xcorp:

Jag kan låta hård i alla mina svar här, det är inte meningen.
Men varför tar du bort mellanslag i lösenord? Det är ett tecken som vilket annat som helst och ska självklart kunna vara en del av lösenordet.
Och som skrivits flera gånger tidigare, det finns ingen anledning att skicka lösenordet till servern öht, och därmed inte heller någon anledning att hasha det.
Vad använder du hashen i URLen till när den kommer till mottagaren?

Jag tänker att det har att göra med hur du kan veta ifall meddelandet är avkrypterat eller ej.
Kan du återskapa samma hash som original-lösenordet så vet du att det är exakt samma lösenord som du låser upp med, alltså är det garanterat att du avkrypterat meddelandet korrekt.

Det går att lösa med en signatur i meddelandet (som du verifierar mot), en hash som checksum eller helt enkelt att du krypterar två gånger;
Först meddelandet, sen krypterade meddelandet + lösenordet. När du sen avkrypterar så kan du ju se om lösenordet matchar det du använde - i så fall är det rätt och du kan avkryptera det inre meddelandet.

encrypt(password+encrypt(message)) helt enkelt.

Visa signatur

NZXT H510 Flow MSI B450 Tomahawk MAX
AMD Ryzen 5800X3D RX 7900XTX Kingston Fury 64GB
LG C2 42" 4K@120Hz AOC Q27G2U 1440P@144Hz

Permalänk
Medlem
Skrivet av Xcorp:

Jag kan låta hård i alla mina svar här, det är inte meningen.
Men varför tar du bort mellanslag i lösenord? Det är ett tecken som vilket annat som helst och ska självklart kunna vara en del av lösenordet.
Och som skrivits flera gånger tidigare, det finns ingen anledning att skicka lösenordet till servern öht, och därmed inte heller någon anledning att hasha det.
Vad använder du hashen i URLen till när den kommer till mottagaren?

Kan förvisso ta bort mellanrummen före och efter lösenordet. Det var bara en nödåtgärd jag gjorde utan att tänka till ordentligt Detta är nu fixat. Ändringslogg: https://codeberg.org/airikr/enc/commit/8310c4d60bbc7836c690b7... (glömde tacka dig i ändringsloggen för jag är sjukt stressad just nu, så jag säger det här: tack )

Du menar att servern kan läsa lösenordet trots att det är hashat med bcrypt? Har dock inte tänk på att jag kan peta in '&pass=' + hashed_passwd till länken via JavaScript. Detta är nu fixat. Ändringslogg: https://codeberg.org/airikr/enc/commit/46ab71fc8cbd28ee2f6860...

Skrivet av Pamudas:

Jag tänker att det har att göra med hur du kan veta ifall meddelandet är avkrypterat eller ej.
Kan du återskapa samma hash som original-lösenordet så vet du att det är exakt samma lösenord som du låser upp med, alltså är det garanterat att du avkrypterat meddelandet korrekt.

Det går att lösa med en signatur i meddelandet (som du verifierar mot), en hash som checksum eller helt enkelt att du krypterar två gånger;
Först meddelandet, sen krypterade meddelandet + lösenordet. När du sen avkrypterar så kan du ju se om lösenordet matchar det du använde - i så fall är det rätt och du kan avkryptera det inre meddelandet.

encrypt(password+encrypt(message)) helt enkelt.

Intressant faktiskt. Om jag har förstått det hela rätt, så ska allt fungera som det gör nu, men att lägga in en "fail safe": bädda in lösenordet i meddelandet och se om lösenordet är rätt innan meddelandet avkrypteras. Förstod jag dig rätt nu?

Visa signatur

Citera mig om du vill att jag ska hitta till ditt svar.
airikr.me. Andra projekt: Keizai, Koroth, Serenum & Enc.

Permalänk

Ett bra projekt som kan vara lärorikt på flera sätt. Man kan använda kunskapen till väldigt mycket och det kan komma till nytta inom ens projekt. T.ex. om man vill kunna få flera olika system att utbyta information. Det kan även inspirera andra att själv studera ämnet.

Ett problem idag är sedan vad är säkert? På gamla Microsoft windows server så var sidor som www.microsoft.com spärrade som default, för denna webbsida kan innehålla en massa skit och var en säkerhetsrisk att besöka.

Permalänk
Medlem
Skrivet av lillaankan_i_dammen:

Ett bra projekt som kan vara lärorikt på flera sätt. Man kan använda kunskapen till väldigt mycket och det kan komma till nytta inom ens projekt. T.ex. om man vill kunna få flera olika system att utbyta information. Det kan även inspirera andra att själv studera ämnet.

Tack Ja, det är ett väldigt lärorikt projekt, måste jag hålla med om. Jag har lärt mig en hel del av det.

Skrivet av lillaankan_i_dammen:

Ett problem idag är sedan vad är säkert? På gamla Microsoft windows server så var sidor som www.microsoft.com spärrade som default, för denna webbsida kan innehålla en massa skit och var en säkerhetsrisk att besöka.

När det kommer till delning av meddelanden och bilder? Kort svar: helvägskryptering.

Gamla Windows-system använder sig av gamla versioner av webbläsarna då de nyare versionerna av mjukvarorna inte längre stöds i till exempel Windows XP. Åtminstone inte Firefox och Microsofts egna. Antingen det, eller så beror det på att webbläsaren i det gamla operativsystemet inte klarar av protokollet som webbsidan använder sig av.

Min egna tanke med det hela

Visa signatur

Citera mig om du vill att jag ska hitta till ditt svar.
airikr.me. Andra projekt: Keizai, Koroth, Serenum & Enc.

Permalänk
Medlem
Skrivet av Pamudas:

Jag tänker att det har att göra med hur du kan veta ifall meddelandet är avkrypterat eller ej.
Kan du återskapa samma hash som original-lösenordet så vet du att det är exakt samma lösenord som du låser upp med, alltså är det garanterat att du avkrypterat meddelandet korrekt.

Det går att lösa med en signatur i meddelandet (som du verifierar mot), en hash som checksum eller helt enkelt att du krypterar två gånger;
Först meddelandet, sen krypterade meddelandet + lösenordet. När du sen avkrypterar så kan du ju se om lösenordet matchar det du använde - i så fall är det rätt och du kan avkryptera det inre meddelandet.

encrypt(password+encrypt(message)) helt enkelt.

Jag försökte kolla igenom biblioteket som används men dokumentationen var inte superbra....
MEN, jag utgår från att biblioteket har den funktionen inbyggd så att du själv inte behöver tänka på det, och därmed bara returnerar "wrong password"

Skrivet av Airikr:

Kan förvisso ta bort mellanrummen före och efter lösenordet. Det var bara en nödåtgärd jag gjorde utan att tänka till ordentligt Detta är nu fixat. Ändringslogg: https://codeberg.org/airikr/enc/commit/8310c4d60bbc7836c690b7... (glömde tacka dig i ändringsloggen för jag är sjukt stressad just nu, så jag säger det här: tack )
......

Varför strippa space öht, det är en del av lösenordet och du tar bort tecken från det, alltså sänker antalet möjliga kombinationer och gör det mindre säkert till ingen nytta alls.

Sen förstår jag absolut att du lär dig och vill skriva egna funktioner, men trim är en sådan funktion jag aldrig hade skrivit själv då den är såpass enkel och finns färdig i JS.

Permalänk
Medlem
Skrivet av Xcorp:

Jag försökte kolla igenom biblioteket som används men dokumentationen var inte superbra....
MEN, jag utgår från att biblioteket har den funktionen inbyggd så att du själv inte behöver tänka på det, och därmed bara returnerar "wrong password"

Är bara nyfiken nu. Med "bibliotek" menar du källkoden för Enc?

Skrivet av Xcorp:

Varför strippa space öht, det är en del av lösenordet och du tar bort tecken från det, alltså sänker antalet möjliga kombinationer och gör det mindre säkert till ingen nytta alls.

Jag tror inte det är många lösenord (om ens något) som börjar och slutar med ett mellanslag

Skrivet av Xcorp:

Sen förstår jag absolut att du lär dig och vill skriva egna funktioner, men trim är en sådan funktion jag aldrig hade skrivit själv då den är såpass enkel och finns färdig i JS.

Jag kan väldigt lite JavaScript jämfört med jQuery. Men jag har inte arbetat med varken JavaScript eller jQuery på väldigt länge, så har glömt bort det mesta. Försöker nämligen använda så lite JavaScript som det bara går till mina projekt, men med Enc har jag gått "all-in" tack vare helvägskrypteringen.

Jag sökte runt på stackoverflow.com efter hur man på smidigast sätt raderar mellanslag före och efter en sträng. Hittade då regex-lösningen Vad för lösning är det du tänker på?

Visa signatur

Citera mig om du vill att jag ska hitta till ditt svar.
airikr.me. Andra projekt: Keizai, Koroth, Serenum & Enc.

Permalänk
Medlem
Skrivet av Airikr:

Jag tror inte det är många lösenord (om ens något) som börjar och slutar med ett mellanslag

Men varför göra det antagandet öht?

Om jag har angivit lösenordet " lösenord123 " (med mellanslag)
Så förväntar jag ju mig inte att man ska kunna logga in med lösenordet "lösenord123"

Visa signatur

| MSI B650 Tomahawk | Ryzen 7 9800X3D | ASUS RTX 3070 | 64GB DDR5 6000MHz | MSI MPG A1000G | Samsung 970 Evo M.2 1TB + 2x WD Black SN850X 2TB|

Permalänk

Kul med lokalproducerat, kämpa på @Airikr

Visa signatur

Marantz NR1605, Rotel RB1090, Ino Audio piPs
SMSL SP200 THX Achromatic Audio Amplifier 888, SMSL M400, Audio-Gd NFB-11 (2015), Objective2+ODAC RevB, Audeze LCD-2 Rosewood, Monoprice M1060, ATH-M40x, Sennheiser HD660S, DROP X KOSS ESP/95X, Koss KPH30i, DROP X HiFiMan HE4XX

Permalänk
Skrivet av Airikr:

Jag tror inte det är många lösenord (om ens något) som börjar och slutar med ett mellanslag

Jag kan väldigt lite JavaScript jämfört med jQuery. Men jag har inte arbetat med varken JavaScript eller jQuery på väldigt länge, så har glömt bort det mesta. Försöker nämligen använda så lite JavaScript som det bara går till mina projekt, men med Enc har jag gått "all-in" tack vare helvägskrypteringen.

Jag sökte runt på stackoverflow.com efter hur man på smidigast sätt raderar mellanslag före och efter en sträng. Hittade då regex-lösningen Vad för lösning är det du tänker på?

Tjo!

Hur gör du i PHP då? Skriver du en egen regex-funktion för att radera whitespace i början+slutet av strängar istället för klassiska trim()? Vissa hjul är relativt onödiga att återskapa när de är så simpla vilket är varför det redan finns simpla funktioner för ändamålen.

Sedan skulle jag i dagsläget aldrig få för mig att försöka återskapa kryptografiska funktioner då matematiken som krävs där för att de ska bli "säkra på riktigt" saknar jag och kommer troligen aldrig inom någon rimlig tidsram hinna lära mig. Där är det kostnadseffektivast låta spetskompetenser få göra sitt åt en.

Nu påstår jag inte att du försöker återskapa kryptografiska funktioner utan bara ge exempel på vad som kan vara värt att försöka återskapa för att lära sig och vad som kan vara rätt så onödigt att försöka återskapa - för att lära sig - på grund av dess enkelhet! (eller svårighet!)

Btw, är det inte lite motsägelsefullt att du vill gärna skapa egen trim-funktion i JavaScript istället för att använda inbyggd men är helt okej med att använda jQuery vilket abstraherar bort (och därmed inlärningen av det) hur JavaScript kan användas för att tillhandahålla webbplatser med interaktivitet?🤪

Mvh,
WKF.

Visa signatur

"Den säkraste koden är den som aldrig skrivs"
"Visste du förresten att det är ett mångmiljardbolag?"
"Jag lever inte för att koda utan kodar för att sen kunna leva"

Permalänk
Medlem
Skrivet av Xcorp:

Vad använder du hashen i URLen till när den kommer till mottagaren?

Den används till att låta webbsidan validera om man har angett rätt lösenord eller inte

Skrivet av BrutalSwede:

Men varför göra det antagandet öht?

Om jag har angivit lösenordet " lösenord123 " (med mellanslag)
Så förväntar jag ju mig inte att man ska kunna logga in med lösenordet "lösenord123"

För att det är bara onödigt att ha mellanslag före och efter ett lösenord Se skärmdumpen från https://stackoverflow.com/questions/632167/should-users-be-al... nedan.

Skrivet av backspace:

Kul med lokalproducerat, kämpa på @Airikr

Tack

Skrivet av WebbkodsFrilansaren:

Tjo!

Hur gör du i PHP då? Skriver du en egen regex-funktion för att radera whitespace i början+slutet av strängar istället för klassiska trim()? Vissa hjul är relativt onödiga att återskapa när de är så simpla vilket är varför det redan finns simpla funktioner för ändamålen.

Sedan skulle jag i dagsläget aldrig få för mig att försöka återskapa kryptografiska funktioner då matematiken som krävs där för att de ska bli "säkra på riktigt" saknar jag och kommer troligen aldrig inom någon rimlig tidsram hinna lära mig. Där är det kostnadseffektivast låta spetskompetenser få göra sitt åt en.

Nu påstår jag inte att du försöker återskapa kryptografiska funktioner utan bara ge exempel på vad som kan vara värt att försöka återskapa för att lära sig och vad som kan vara rätt så onödigt att försöka återskapa - för att lära sig - på grund av dess enkelhet! (eller svårighet!)

Btw, är det inte lite motsägelsefullt att du vill gärna skapa egen trim-funktion i JavaScript istället för att använda inbyggd men är helt okej med att använda jQuery vilket abstraherar bort (och därmed inlärningen av det) hur JavaScript kan användas för att tillhandahålla webbplatser med interaktivitet?🤪

Mvh,
WKF.

Hellu

Jag gjorde en till nätsökning och fann detta: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refer.... Kommer ersätta min regex-lösning med den Kanske inte nu direkt för jag har ännu inte vaknat till än. Gick upp strax innan sju i morse och fifflade med Enc i några timmar efter det.

Nä, jag har inte återskapat någon kryptografisk funktion. Använder mig av CryptoJS för meddelandet och eventuella filer (bevis), och bcrypt till lösenordet (närmare bestämt dcodeIO.bcrypt då jag inte behärskar Node.js) (bevis).

Visa signatur

Citera mig om du vill att jag ska hitta till ditt svar.
airikr.me. Andra projekt: Keizai, Koroth, Serenum & Enc.

Permalänk
Medlem
Skrivet av Airikr:

Den används till att låta webbsidan validera om man har angett rätt lösenord eller inte

För att det är bara onödigt att ha mellanslag före och efter ett lösenord Se skärmdumpen från https://stackoverflow.com/questions/632167/should-users-be-al... nedan.

https://img.airikr.me/uploads/OiKJhpSs67kaHd2to7DireJr1ZYLRQ1gI3hIeywt.png

Tack

Hellu

Jag gjorde en till nätsökning och fann detta: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refer.... Kommer ersätta min regex-lösning med den Kanske inte nu direkt för jag har ännu inte vaknat till än. Gick upp strax innan sju i morse och fifflade med Enc i några timmar efter det.

Nä, jag har inte återskapat någon kryptografisk funktion. Använder mig av CryptoJS för meddelandet och eventuella filer (bevis), och bcrypt till lösenordet (närmare bestämt dcodeIO.bcrypt då jag inte behärskar Node.js) (bevis).

Så du valde svaret som höll med dig, i havet av hundratals som säger att man absolut inte ska göra det.

Finns ju t.o.m flera exempel där som förklarar case med t.ex. lösenordshanterare etc.

Visa signatur

| MSI B650 Tomahawk | Ryzen 7 9800X3D | ASUS RTX 3070 | 64GB DDR5 6000MHz | MSI MPG A1000G | Samsung 970 Evo M.2 1TB + 2x WD Black SN850X 2TB|

Permalänk
Medlem
Skrivet av BrutalSwede:

Så du valde svaret som höll med dig, i havet av hundratals som säger att man absolut inte ska göra det.

Finns ju t.o.m flera exempel där som förklarar case med t.ex. lösenordshanterare etc.

"ska göra det". Vilket menar du? Att ha med mellanrum i lösenordet eller att ha med lösenordets hashsträng i länken?

Visa signatur

Citera mig om du vill att jag ska hitta till ditt svar.
airikr.me. Andra projekt: Keizai, Koroth, Serenum & Enc.

Permalänk
Medlem
Skrivet av Airikr:

"ska göra det". Vilket menar du? Att ha med mellanrum i lösenordet eller att ha med lösenordets hashsträng i länken?

Att man inte ska ändra en användarens lösenord genom att ta bort mellanslag... Har en användare matat in ett värde så accepterar man antingen värdet, eller skickar ett valideringsfel som säger att lösenordet måste uppfylla kriterie X/Y/Z.

Visa signatur

| MSI B650 Tomahawk | Ryzen 7 9800X3D | ASUS RTX 3070 | 64GB DDR5 6000MHz | MSI MPG A1000G | Samsung 970 Evo M.2 1TB + 2x WD Black SN850X 2TB|