• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EST 20:52
CET 02:52
KST 10:52
  • 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
Rongyi Cup S3 - RO16 Preview1herO wins SC2 All-Star Invitational10SC2 All-Star Invitational: Tournament Preview5RSL Revival - 2025 Season Finals Preview8RSL Season 3 - Playoffs Preview0
Community News
Weekly Cups (Jan 12-18): herO, MaxPax, Solar win0BSL Season 2025 - Full Overview and Conclusion8Weekly Cups (Jan 5-11): Clem wins big offline, Trigger upsets4$21,000 Rongyi Cup Season 3 announced (Jan 22-Feb 7)17Weekly Cups (Dec 29-Jan 4): Protoss rolls, 2v2 returns7
StarCraft 2
General
Rongyi Cup S3 - RO16 Preview Starcraft 2 will not be in the Esports World Cup herO wins SC2 All-Star Invitational PhD study /w SC2 - help with a survey! SC2 Spotted on the EWC 2026 list?
Tourneys
$21,000 Rongyi Cup Season 3 announced (Jan 22-Feb 7) OSC Season 13 World Championship $70 Prize Pool Ladder Legends Academy Weekly Open! SC2 All-Star Invitational: Jan 17-18 Sparkling Tuna Cup - Weekly Open Tournament
Strategy
Simple Questions Simple Answers
Custom Maps
[A] Starcraft Sound Mod
External Content
Mutation # 509 Doomsday Report Mutation # 508 Violent Night Mutation # 507 Well Trained Mutation # 506 Warp Zone
Brood War
General
Which foreign pros are considered the best? [ASL21] Potential Map Candidates BW General Discussion BW AKA finder tool Gypsy to Korea
Tourneys
[Megathread] Daily Proleagues [BSL21] Non-Korean Championship - Starts Jan 10 Small VOD Thread 2.0 Azhi's Colosseum - Season 2
Strategy
Current Meta Simple Questions, Simple Answers Soma's 9 hatch build from ASL Game 2 Game Theory for Starcraft
Other Games
General Games
Battle Aces/David Kim RTS Megathread Nintendo Switch Thread Stormgate/Frost Giant Megathread Beyond All Reason Awesome Games Done Quick 2026!
Dota 2
Official 'what is Dota anymore' discussion
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
Vanilla Mini Mafia Mafia Game Mode Feedback/Ideas
Community
General
US Politics Mega-thread Russo-Ukrainian War Thread NASA and the Private Sector Canadian Politics Mega-thread Things Aren’t Peaceful in Palestine
Fan Clubs
The herO Fan Club! The IdrA Fan Club
Media & Entertainment
Anime Discussion Thread [Manga] One Piece
Sports
2024 - 2026 Football Thread
World Cup 2022
Tech Support
Computer Build, Upgrade & Buying Resource Thread
TL Community
The Automated Ban List
Blogs
Navigating the Risks and Rew…
TrAiDoS
My 2025 Magic: The Gathering…
DARKING
Life Update and thoughts.
FuDDx
How do archons sleep?
8882
James Bond movies ranking - pa…
Topin
Customize Sidebar...

Website Feedback

Closed Threads



Active: 1278 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
Poland17614 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
Poland17614 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
Poland17614 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 9h 8m
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
PiGStarcraft451
Nathanias 118
StarCraft: Brood War
Artosis 618
Shuttle 67
League of Legends
C9.Mang0385
Counter-Strike
taco 240
Super Smash Bros
hungrybox1066
Other Games
summit1g7072
tarik_tv6702
KnowMe1594
shahzam636
JimRising 140
Maynarde118
ToD100
ViBE34
Liquid`Ken13
minikerr1
Organizations
Other Games
gamesdonequick1012
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
sctven
[ Show 15 non-featured ]
StarCraft 2
• Hupsaiya 82
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• LaughNgamezSOOP
• Laughngamez YouTube
• Migwel
• sooper7s
StarCraft: Brood War
• RayReign 29
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
Dota 2
• masondota21297
League of Legends
• Doublelift4615
Upcoming Events
RongYI Cup
9h 8m
ByuN vs TriGGeR
herO vs Rogue
OSC
9h 8m
herO vs Clem
Cure vs TBD
Solar vs TBD
Classic vs TBD
RongYI Cup
1d 9h
Clem vs ShoWTimE
Zoun vs Bunny
Big Brain Bouts
1d 15h
Serral vs TBD
RongYI Cup
2 days
SHIN vs Creator
Classic vs Percival
OSC
2 days
BSL 21
2 days
RongYI Cup
3 days
Maru vs Cyan
Solar vs Krystianer
uThermal 2v2 Circuit
3 days
BSL 21
3 days
[ Show More ]
Wardi Open
4 days
Monday Night Weeklies
4 days
OSC
4 days
WardiTV Invitational
5 days
WardiTV Invitational
6 days
Liquipedia Results

Completed

Proleague 2026-01-20
SC2 All-Star Inv. 2025
NA Kuram Kup

Ongoing

C-Race Season 1
BSL 21 Non-Korean Championship
CSL 2025 WINTER (S19)
KCM Race Survival 2026 Season 1
Rongyi Cup S3
OSC Championship Season 13
Underdog Cup #3
BLAST Bounty Winter 2026
BLAST Bounty Winter Qual
eXTREMESLAND 2025
SL Budapest Major 2025
ESL Impact League Season 8
BLAST Rivals Fall 2025
IEM Chengdu 2025

Upcoming

Escore Tournament S1: W5
Acropolis #4 - TS4
Acropolis #4
IPSL Spring 2026
uThermal 2v2 2026 Main Event
Bellum Gens Elite Stara Zagora 2026
HSC XXVIII
Nations Cup 2026
PGL Bucharest 2026
Stake Ranked Episode 1
BLAST Open Spring 2026
ESL Pro League Season 23
ESL Pro League Season 23
PGL Cluj-Napoca 2026
IEM Kraków 2026
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 © 2026 TLnet. All Rights Reserved.