• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 16:20
CEST 22:20
KST 05:20
  • Home
  • Forum
  • Calendar
  • Streams
  • Liquipedia
  • Features
  • Store
  • EPT
  • TL+
  • StarCraft 2
  • Brood War
  • Smash
  • Heroes
  • Counter-Strike
  • Overwatch
  • Liquibet
  • Fantasy StarCraft
  • TLPD
  • StarCraft 2
  • Brood War
  • Blogs
Forum Sidebar
Events/Features
News
Featured News
TL.net Map Contest #21: Voting10[ASL20] Ro4 Preview: Descent11Team TLMC #5: Winners Announced!3[ASL20] Ro8 Preview Pt2: Holding On9Maestros of the Game: Live Finals Preview (RO4)5
Community News
Chinese SC2 server to reopen; live all-star event in Hangzhou18Weekly Cups (Oct 13-19): Clem Goes for Four3BSL Team A vs Koreans - Sat-Sun 16:00 CET7Weekly Cups (Oct 6-12): Four star herO85.0.15 Patch Balance Hotfix (2025-10-8)81
StarCraft 2
General
RotterdaM "Serral is the GOAT, and it's not close" Weekly Cups (Oct 13-19): Clem Goes for Four Chinese SC2 server to reopen; live all-star event in Hangzhou The New Patch Killed Mech! 5.0.15 Patch Balance Hotfix (2025-10-8)
Tourneys
Tenacious Turtle Tussle RSL Season 3 Qualifier Links and Dates $1,200 WardiTV October (Oct 21st-31st) SC2's Safe House 2 - October 18 & 19 INu's Battles #13 - ByuN vs Zoun
Strategy
Custom Maps
Map Editor closed ?
External Content
Mutation # 496 Endless Infection Mutation # 495 Rest In Peace Mutation # 494 Unstable Environment Mutation # 493 Quick Killers
Brood War
General
Is there anyway to get a private coach? SnOw's Awful Building Placements vs barracks BW General Discussion BSL Team A vs Koreans - Sat-Sun 16:00 CET BGH Auto Balance -> http://bghmmr.eu/
Tourneys
[ASL20] Semifinal B [Megathread] Daily Proleagues 300$ 3D!Community Brood War Super Cup #4 Azhi's Colosseum - Anonymous Tournament
Strategy
[I] TvP Marine Usage Roaring Currents ASL final Current Meta BW - ajfirecracker Strategy & Training
Other Games
General Games
Stormgate/Frost Giant Megathread Path of Exile Nintendo Switch Thread Dawn of War IV ZeroSpace Megathread
Dota 2
Official 'what is Dota anymore' discussion LiquidDota to reintegrate into TL.net
League of Legends
Heroes of the Storm
Simple Questions, Simple Answers Heroes of the Storm 2.0
Hearthstone
Deck construction bug Heroes of StarCraft mini-set
TL Mafia
TL Mafia Community Thread SPIRED by.ASL Mafia {211640}
Community
General
Russo-Ukrainian War Thread US Politics Mega-thread Things Aren’t Peaceful in Palestine The Chess Thread Men's Fashion Thread
Fan Clubs
The herO Fan Club!
Media & Entertainment
Anime Discussion Thread Series you have seen recently... [Manga] One Piece Movie Discussion!
Sports
2024 - 2026 Football Thread TeamLiquid Health and Fitness Initiative For 2023 MLB/Baseball 2023 Formula 1 Discussion NBA General Discussion
World Cup 2022
Tech Support
SC2 Client Relocalization [Change SC2 Language] Linksys AE2500 USB WIFI keeps disconnecting Computer Build, Upgrade & Buying Resource Thread
TL Community
The Automated Ban List Recent Gifted Posts
Blogs
The Benefits Of Limited Comm…
TrAiDoS
Sabrina was soooo lame on S…
Peanutsc
Our Last Hope in th…
KrillinFromwales
Certified Crazy
Hildegard
Customize Sidebar...

Website Feedback

Closed Threads



Active: 1774 users

The Big Programming Thread - Page 597

Forum Index > General Forum
Post a Reply
Prev 1 595 596 597 598 599 1032 Next
Thread Rules
1. This is not a "do my homework for me" thread. If you have specific questions, ask, but don't post an assignment or homework problem and expect an exact solution.
2. No recruiting for your cockamamie projects (you won't replace facebook with 3 dudes you found on the internet and $20)
3. If you can't articulate why a language is bad, don't start slinging shit about it. Just remember that nothing is worse than making CSS IE6 compatible.
4. Use [code] tags to format code blocks.
teamamerica
Profile Blog Joined July 2010
United States958 Posts
Last Edited: 2015-02-28 20:44:28
February 28 2015 20:40 GMT
#11921
On March 01 2015 05:32 Manit0u wrote:
Show nested quote +
On March 01 2015 05:14 teamamerica wrote:
They have a few different components - salt, iv, and actual passphrase used to generate key. I'm wondering how important it is to keep all of that data private. I was going to simply hardcode salt into code(choose 8 random bytes), and also store the IV with the encrypted text.


http://security.stackexchange.com/questions/17421/how-to-store-salt

The chosen answer is very informational and a good read in itself. Also, it's important to have a unique salt for each encryption, rather than having a single global salt.


Hi, thanks for posting that. However - and maybe because that is only focusing on storing password (so only 1 way transformation needed), it doesn't discus storing an IV, which is used by the actual symmetric crypto part of storage (from what I understand of my code -- passphrase => key (using KDF), cleartext => key => ciphertext.

From what I've googled, IV can be stored in cleartext to (they compare it to storing salt for hash, here I guess we have both because we use both kdf and aes).

Wondering if anyone had other exp - also - beyond that, anything glaringly wrong with my code?

I guess I shouldn't hard code the salt but honestly does it make a difference? This isn't an online application where adversary is sending me queries and I'm responding.

edit: in response to your edit
"Also, it's important to have a unique salt for each encryption, rather than having a single global salt."

I only use salt to generate one thing - the key. So really, there is only one encryption going on that uses it I guess. Unless I'm not following something?

RIP GOMTV. RIP PROLEAGUE.
nunez
Profile Blog Joined February 2011
Norway4003 Posts
February 28 2015 20:57 GMT
#11922
the this keyword is a pointer to the object on which a member function is called.
in your example member function being called is character::character(), and the type of this
is character*.

when you apply the dereference operator * on a pointer, you obtain an l-value of the object that is pointed to.
in your example the type of the result of dereferencing this (aka when you write *this) is character&.

addObjectToList takes an argument of type character*, thus you need to pass this and not *this.

illustration:

type* pointer_to_object = new type();
type* another_pointer_object = pointer;
type& reference_to_objeft = *pointer;
type copy_of_object=*pointer;
conspired against by a confederacy of dunces.
Blisse
Profile Blog Joined July 2010
Canada3710 Posts
February 28 2015 21:01 GMT
#11923
On March 01 2015 05:36 sabas123 wrote:
+ Show Spoiler +

class character;
std::vector<characater>objectList;

class character{
character();
};

character::character(){
addObjectToList(*this);
}

addObjectToList(character *obj){
objectList.push_back( character *obj);
}

error:: expecting primal type before '*'


sorry about my terrible post, I hope this clears some stuff up.


Lots of errors in the code there, make sure you use code tags too next time to keep the formatting.

keyword this is a pointer to the current instance of the object
*this dereferences that pointer to the actual instance
your addObjectToList method takes in a character*, but you pass in a dereferenced this, or the actual object
you have a syntax error with push_back( character *obj), which doesn't make sense since you don't need to specify the type there again (the type is already known by the method definition)
the addObjectToList definition is below its first usage, and you haven't forward declared it earlier, so it wouldn't compile
your character constructor was declared private, you need to set it as public

may be more that i missed and i dont know if my code compiles


class character;
std::vector<character> objectList;

class character{
public:
character();
};

addObjectToList(character obj){
objectList.push_back(obj);
}

character::character() {
addObjectToList(*this);
}

There is no one like you in the universe.
nunez
Profile Blog Joined February 2011
Norway4003 Posts
February 28 2015 21:56 GMT
#11924
i was assuming he wanted to store pointers to instantiations,
and not copies of instantiations.
conspired against by a confederacy of dunces.
Blisse
Profile Blog Joined July 2010
Canada3710 Posts
March 01 2015 08:05 GMT
#11925
oo didn't see that earlier post



class character;
std::vector<character*> objectList;

class character{
public:
character();
};

addObjectToList(character* obj){
objectList.push_back(obj);
}

character::character() {
addObjectToList(this);
}
There is no one like you in the universe.
sabas123
Profile Blog Joined December 2010
Netherlands3122 Posts
Last Edited: 2015-03-01 17:24:53
March 01 2015 17:24 GMT
#11926
On March 01 2015 17:05 Blisse wrote:
oo didn't see that earlier post



class character;
std::vector<character*> objectList;

class character{
public:
character();
};

addObjectToList(character* obj){
objectList.push_back(obj);
}

character::character() {
addObjectToList(this);
}

90p;0p;-0p;-[=0p;-[=90p;0p;-0p;-[=0p;-[=90p;0p;-0p;-[=0p;-[=90p;0p;-0p;-[=0p;-[=90p;0p;-0p;-[=0p;-[=90p;0p;-0p;-[=0p;-[=

the result of alot of face keyboarding over this code.

thanks alot!

btw you forgot to add a pointer too bjectList.push_back(obj);
The harder it becomes, the more you should focus on the basics.
Khalum
Profile Joined September 2010
Austria831 Posts
March 01 2015 18:53 GMT
#11927
On March 02 2015 02:24 sabas123 wrote:
Show nested quote +
On March 01 2015 17:05 Blisse wrote:
oo didn't see that earlier post



class character;
std::vector<character*> objectList;

class character{
public:
character();
};

addObjectToList(character* obj){
objectList.push_back(obj);
}

character::character() {
addObjectToList(this);
}

90p;0p;-0p;-[=0p;-[=90p;0p;-0p;-[=0p;-[=90p;0p;-0p;-[=0p;-[=90p;0p;-0p;-[=0p;-[=90p;0p;-0p;-[=0p;-[=90p;0p;-0p;-[=0p;-[=

the result of alot of face keyboarding over this code.

thanks alot!

btw you forgot to add a pointer too bjectList.push_back(obj);


'obj' is a pointer.
sabas123
Profile Blog Joined December 2010
Netherlands3122 Posts
March 01 2015 19:47 GMT
#11928
On March 02 2015 03:53 Khalum wrote:
Show nested quote +
On March 02 2015 02:24 sabas123 wrote:
On March 01 2015 17:05 Blisse wrote:
oo didn't see that earlier post



class character;
std::vector<character*> objectList;

class character{
public:
character();
};

addObjectToList(character* obj){
objectList.push_back(obj);
}

character::character() {
addObjectToList(this);
}

90p;0p;-0p;-[=0p;-[=90p;0p;-0p;-[=0p;-[=90p;0p;-0p;-[=0p;-[=90p;0p;-0p;-[=0p;-[=90p;0p;-0p;-[=0p;-[=90p;0p;-0p;-[=0p;-[=

the result of alot of face keyboarding over this code.

thanks alot!

btw you forgot to add a pointer to objectList.push_back(obj);


'obj' is a pointer.

I had to place an * before the obj in the push_back call otherwise it would wouldn't compile for me.
The harder it becomes, the more you should focus on the basics.
Ropid
Profile Joined March 2009
Germany3557 Posts
March 01 2015 19:57 GMT
#11929
That can't be right if it's code like what's in Blisse's post.
"My goal is to replace my soul with coffee and become immortal."
Khalum
Profile Joined September 2010
Austria831 Posts
Last Edited: 2015-03-01 20:15:47
March 01 2015 20:15 GMT
#11930
On March 02 2015 04:47 sabas123 wrote:
Show nested quote +
On March 02 2015 03:53 Khalum wrote:

[..]
btw you forgot to add a pointer to objectList.push_back(obj);


'obj' is a pointer.

I had to place an * before the obj in the push_back call otherwise it would wouldn't compile for me.


You probably have a vector< character > instead of a vector< character* > ?
Blisse
Profile Blog Joined July 2010
Canada3710 Posts
Last Edited: 2015-03-01 21:49:15
March 01 2015 21:47 GMT
#11931
blasphemous spaces inside the template typename!

make sure you know what's the difference between vector<character*> and vector<character>, and why you're probably talking about using the first one and not the second. nunez has a bit more thorough explanation of what was going wrong up above.
There is no one like you in the universe.
Deleted User 3420
Profile Blog Joined May 2003
24492 Posts
March 02 2015 04:36 GMT
#11932
I am starting to discover that very good programmers must also have very very good organizational skills
meatpudding
Profile Joined March 2011
Australia520 Posts
March 02 2015 04:47 GMT
#11933
On March 02 2015 13:36 travis wrote:
I am starting to discover that very good programmers must also have very very good organizational skills

Perhaps you have uncovered why I am not the best programmer!

Even more important is patience I think. In programming you may end up spending a lot of time doing (Seemingly) very little.
Be excellent to each other.
Manit0u
Profile Blog Joined August 2004
Poland17394 Posts
March 02 2015 06:11 GMT
#11934
On March 02 2015 13:47 meatpudding wrote:
Show nested quote +
On March 02 2015 13:36 travis wrote:
I am starting to discover that very good programmers must also have very very good organizational skills

Perhaps you have uncovered why I am not the best programmer!

Even more important is patience I think. In programming you may end up spending a lot of time doing (Seemingly) very little.


Well, even in the preface of Clean Code they mention that programming is mostly reading and writing, but the reading to writing ratio is roughly 10 to 1. Go figure.
Time is precious. Waste it wisely.
Blisse
Profile Blog Joined July 2010
Canada3710 Posts
Last Edited: 2015-03-02 09:02:15
March 02 2015 08:36 GMT
#11935
spent 3 hours fixing my sass to realize that foundation was being imported after my custom styles, so it would keep overwriting my custom stuff and making me really annoyed that nothing i changed was showing up...
There is no one like you in the universe.
sabas123
Profile Blog Joined December 2010
Netherlands3122 Posts
March 02 2015 09:01 GMT
#11936
On March 02 2015 05:15 Khalum wrote:
Show nested quote +
On March 02 2015 04:47 sabas123 wrote:
On March 02 2015 03:53 Khalum wrote:

[..]
btw you forgot to add a pointer to objectList.push_back(obj);


'obj' is a pointer.

I had to place an * before the obj in the push_back call otherwise it would wouldn't compile for me.


You probably have a vector< character > instead of a vector< character* > ?

your right, thanks for pointing it out
The harder it becomes, the more you should focus on the basics.
Manit0u
Profile Blog Joined August 2004
Poland17394 Posts
Last Edited: 2015-03-02 11:42:42
March 02 2015 11:09 GMT
#11937
I so hate ugly code...

Before:

protected function generatePassword($length = 12)
{
$lowercase = "qwertyuiopasdfghjklzxcvbnm";
$uppercase = "ASDFGHJKLZXCVBNMQWERTYUIOP";
$numbers = "1234567890";
$specialCharacters = "_!?";
$randomCode = "";
mt_srand(crc32(microtime()));
$max = strlen($lowercase) - 1;
for ($x = 0; $x < abs($length / 3); $x++) {
$randomCode .= $lowercase{mt_rand(0, $max)};
}
$max = strlen($uppercase) - 1;
for ($x = 0; $x < abs($length / 3); $x++) {
$randomCode .= $uppercase{mt_rand(0, $max)};
}
$max = strlen($specialCharacters) - 1;
for ($x = 0; $x < abs($length / 3); $x++) {
$randomCode .= $specialCharacters{mt_rand(0, $max)};
}
$max = strlen($numbers) - 1;
for ($x = 0; $x < abs($length / 3); $x++) {
$randomCode .= $numbers{mt_rand(0, $max)};
}

return str_shuffle($randomCode);
}


After:

protected function generatePassword($length = 12)
{
$lowercaseLettersArray = range('a', 'z');
$uppercaseLettersArray = range('A', 'Z');
$numbersArray = range(0, 9);
$specialCharactersArray = array('_', '!', '?');
$randomizedString = '';

$i = abs($length / 3);

while ($i--) {
$randomizedString .= $this->getRandomArrayMember($lowercaseLettersArray);
$randomizedString .= $this->getRandomArrayMember($uppercaseLettersArray);
$randomizedString .= $this->getRandomArrayMember($numbersArray);
$randomizedString .= $this->getRandomArrayMember($specialCharactersArray);
}

return str_shuffle($randomizedString);
}

protected function getRandomArrayMember($array)
{
return $array[array_rand($array)];
}


Edit: Unrelated bonus good read: http://apievangelist.com/2012/01/12/the-secret-to-amazons-success-internal-apis/
Time is precious. Waste it wisely.
berated-
Profile Blog Joined February 2007
United States1134 Posts
March 02 2015 11:32 GMT
#11938
On March 02 2015 20:09 Manit0u wrote:
I so hate ugly code...

Before:

protected function generatePassword($length = 12)
{
$lowercase = "qwertyuiopasdfghjklzxcvbnm";
$uppercase = "ASDFGHJKLZXCVBNMQWERTYUIOP";
$numbers = "1234567890";
$specialCharacters = "_!?";
$randomCode = "";
mt_srand(crc32(microtime()));
$max = strlen($lowercase) - 1;
for ($x = 0; $x < abs($length / 3); $x++) {
$randomCode .= $lowercase{mt_rand(0, $max)};
}
$max = strlen($uppercase) - 1;
for ($x = 0; $x < abs($length / 3); $x++) {
$randomCode .= $uppercase{mt_rand(0, $max)};
}
$max = strlen($specialCharacters) - 1;
for ($x = 0; $x < abs($length / 3); $x++) {
$randomCode .= $specialCharacters{mt_rand(0, $max)};
}
$max = strlen($numbers) - 1;
for ($x = 0; $x < abs($length / 3); $x++) {
$randomCode .= $numbers{mt_rand(0, $max)};
}

return str_shuffle($randomCode);
}


After:

protected function generatePassword($length = 12)
{
$lowercaseLettersArray = range('a', 'z');
$uppercaseLettersArray = range('A', 'Z');
$numbersArray = range(0, 9);
$specialCharactersArray = array('_', '!', '?');
$randomizedString = '';

$i = abs($length / 3);

while ($i--) {
$randomizedString .= $this->getRandomArrayMember($lowercaseLettersArray);
$randomizedString .= $this->getRandomArrayMember($uppercaseLettersArray);
$randomizedString .= $this->getRandomArrayMember($numbersArray);
$randomizedString .= $this->getRandomArrayMember($specialCharactersArray);
}

return str_shuffle($randomizedString);
}

protected function getRandomArrayMember($array)
{
return $array[array_rand($array)];
}


I hope this is only generating passwords of length 4, 8, and 12
Manit0u
Profile Blog Joined August 2004
Poland17394 Posts
March 02 2015 11:47 GMT
#11939
Well, the length variable is deceiving in this case because if length = 12 the generated password will have 16 characters...
Time is precious. Waste it wisely.
berated-
Profile Blog Joined February 2007
United States1134 Posts
Last Edited: 2015-03-02 12:03:08
March 02 2015 12:01 GMT
#11940
On March 02 2015 20:47 Manit0u wrote:
Well, the length variable is deceiving in this case because if length = 12 the generated password will have 16 characters...


Right, my math started to suck at 12 ... anyways, beautiful code isn't just refactored well.. it also makes sense. I'm not sure that totally makes sense. Karma for being a smart ass, I'll rationalize as "2/3 ain't bad".
Prev 1 595 596 597 598 599 1032 Next
Please log in or register to reply.
Live Events Refresh
Next event in 14h 40m
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
mouzHeroMarine 591
UpATreeSC 106
Codebar 34
Railgan 24
JuggernautJason3
StarCraft: Brood War
EffOrt 430
Backho 86
Free 38
scan(afreeca) 12
NaDa 6
Dota 2
monkeys_forever274
capcasts49
Counter-Strike
Stewie2K101
Super Smash Bros
Chillindude31
Heroes of the Storm
Liquid`Hasu462
Other Games
Grubby4091
FrodaN2265
fl0m970
Skadoodle285
shahzam277
ToD134
Trikslyr51
ViBE38
Mew2King35
QueenE33
Organizations
Counter-Strike
PGL264
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
sctven
[ Show 16 non-featured ]
StarCraft 2
• Hupsaiya 30
• davetesta17
• intothetv
• AfreecaTV YouTube
• Kozan
• IndyKCrew
• LaughNgamezSOOP
• Migwel
• sooper7s
StarCraft: Brood War
• 80smullet 18
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
Dota 2
• lizZardDota256
Other Games
• imaqtpie1329
• Shiphtur218
Upcoming Events
WardiTV Invitational
14h 40m
Online Event
19h 40m
RSL Revival
1d 5h
RSL Revival
1d 13h
WardiTV Invitational
1d 14h
OSC
1d 18h
SKillous vs goblin
Spirit vs GgMaChine
ByuN vs MaxPax
Afreeca Starleague
2 days
Snow vs Soma
Sparkling Tuna Cup
2 days
WardiTV Invitational
2 days
CrankTV Team League
2 days
[ Show More ]
RSL Revival
2 days
Wardi Open
3 days
CrankTV Team League
3 days
Replay Cast
4 days
WardiTV Invitational
4 days
CrankTV Team League
4 days
Replay Cast
5 days
CrankTV Team League
5 days
Replay Cast
6 days
The PondCast
6 days
CrankTV Team League
6 days
Liquipedia Results

Completed

Acropolis #4 - TS2
WardiTV TLMC #15
HCC Europe

Ongoing

BSL 21 Points
ASL Season 20
CSL 2025 AUTUMN (S18)
C-Race Season 1
IPSL Winter 2025-26
EC S1
Thunderpick World Champ.
CS Asia Championships 2025
ESL Pro League S22
StarSeries Fall 2025
FISSURE Playground #2
BLAST Open Fall 2025
BLAST Open Fall Qual
Esports World Cup 2025
BLAST Bounty Fall 2025
BLAST Bounty Fall Qual

Upcoming

SC4ALL: Brood War
BSL Season 21
BSL 21 Team A
BSL 21 Non-Korean Championship
RSL Offline Finals
RSL Revival: Season 3
Stellar Fest
SC4ALL: StarCraft II
CranK Gathers Season 2: SC II Pro Teams
eXTREMESLAND 2025
ESL Impact League Season 8
SL Budapest Major 2025
BLAST Rivals Fall 2025
IEM Chengdu 2025
PGL Masters Bucharest 2025
TLPD

1. ByuN
2. TY
3. Dark
4. Solar
5. Stats
6. Nerchio
7. sOs
8. soO
9. INnoVation
10. Elazer
1. Rain
2. Flash
3. EffOrt
4. Last
5. Bisu
6. Soulkey
7. Mini
8. Sharp
Sidebar Settings...

Advertising | Privacy Policy | Terms Of Use | Contact Us

Original banner artwork: Jim Warren
The contents of this webpage are copyright © 2025 TLnet. All Rights Reserved.