• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 03:30
CEST 09:30
KST 16:30
  • 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
[ASL22] Ro8 Preview: In A Tizzy8[ASL22] Ro16 Preview: Holy Diver5[ASL22] Ro16 Preview: Rough Waters10[ASL22] Ro24 Preview: Siren's Call8[ASL22] Ro24 Preview: Summer's End9
Community News
Weekly Cups (Sep 13-20): herO scores triple1BSL Season 235Weekly Cups (Sep 7-12): SHIN, ByuN, MaxPax double down1StarCraft open world shooter announced at BlizzCon101Weekly Cups (Aug 30-Sep 7): herO thrives amid growing schism10
StarCraft 2
General
How do you feel about the StarCraft shooter announcement at BlizzCon 2026? Blizzard Classic Cup @ BlizzCon 2026 - $100k prize pool The Death of Cheese: From a Professional Cheeser Weekly Cups (Sep 13-20): herO scores triple Balance hotfix patch 5.0.16b (July 16)
Tourneys
2026 GSTL Announcement Sparkling Tuna Cup - Weekly Open Tournament RSL Revival: Season 6 - Qualifiers and Main Event RSL goes to London! 2026 Offline Finals Nov 21-22 SC2 AI Tournament 2026 Fall
Strategy
[H] ZvP Mid-Late Game: Stalkers Collossi HT
Custom Maps
Nexus Wars 2021 GUIDE [M] (2) Industrial Park
External Content
Mutation # 544 Double Trouble The PondCast: SC2 News & Results Mutation # 543 Enhanced Defenses Mutation # 542 The Ascended
Brood War
General
Bot on ladder [ASL22] Ro8 Preview: In A Tizzy Guide To Watching Ancient Brood War Replays Oldest replay file. new ranked ladder hack?
Tourneys
[ASL22] Ro8 Day 2 [ASL22] Ro8 Day 1 [IPSL] IPSL is Back With Winter 26-27! [BSL23] SM: Ret vs TerrOr -> DragOn vs StRyKeR
Strategy
Cliff Jump Revisited (1 in a 1000 strategy) Replay Review Process - What do you do? Simple Questions, Simple Answers Odyssey Mineral Stack Saturation
Other Games
General Games
Warcraft III: The Frozen Throne Nintendo Switch Thread Stormgate/Frost Giant Megathread EVE Corporation Diablo IV
Dota 2
Dota 2 Champions League Season 3 Begins April 25! Official 'what is Dota anymore' discussion
League of Legends
[TL LoL EUW IHs] Teemo shall perish
Heroes of the Storm
Heroes of the Storm 2.0
Hearthstone
Deck construction bug
TL Mafia
TL Mafia Community Thread
Community
General
US Politics Mega-thread Artificial Intelligence Thread Things Aren’t Peaceful in Palestine All you football fans (soccer)! Russo-Ukrainian War Thread
Fan Clubs
MarineLorD Fan Club The Creator Fan Club The ShoWTimE Fan Club
Media & Entertainment
Movie Discussion! [Manga] One Piece Diablo Animated Series on Netflix
Sports
Football (Soccer) Thread TeamLiquid Health and Fitness Initiative For 2023 MLB/Baseball 2023
World Cup 2022
Tech Support
Computer Build, Upgrade & Buying Resource Thread
TL Community
Recent Gifted Posts
Blogs
Gaming Intensity, Problemati…
TrAiDoS
38 yo Retired SWE loo…
PurE)Rabbit-SF
Can Bots Beat Pros?? Starcr…
namkraft
[meme] I finally understa…
LUCKY_NOOB
Regacy Esports:Our Goa…
regacyesports
Dreaming of BW patches (mod…
c3rberUs
Customize Sidebar...

Website Feedback

Closed Threads



Active: 9154 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
Poland17843 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
Poland17843 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
Poland17843 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 2h 30m
[ Submit Event ]
Live Streams
Refresh
StarCraft: Brood War
Rain 2445
firebathero 2112
sorry 69
zelot 27
ajuk12(nOOB) 13
Noble 13
Dota 2
NeuroSwarm136
febbydoto21
League of Legends
JimRising 569
Counter-Strike
shoxiejesuss28
Heroes of the Storm
Trikslyr24
Other Games
Happy626
ceh9423
Maynarde284
olofmeister194
Livibee106
Mew2King66
Organizations
Dota 2
PGL Dota 2 - Main Stream5504
PGL Dota 2 - Secondary Stream2507
Other Games
gamesdonequick738
BasetradeTV49
[ Show 14 non-featured ]
StarCraft 2
• LUISG 13
• mYiSmile18
• Letter141
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• Migwel
StarCraft: Brood War
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
Dota 2
• lizZardDota2197
League of Legends
• Rush1536
• Stunt508
Upcoming Events
Sparkling Tuna Cup
2h 30m
Afreeca Starleague
2h 30m
Light vs EffOrt
OSC
4h 30m
PiGosaur Cup
16h 30m
Kung Fu Cup
1d 3h
The PondCast
2 days
Replay Cast
2 days
Korean StarCraft League
3 days
CranKy Ducklings
4 days
GSL
5 days
[ Show More ]
Yamato Cup
5 days
Replay Cast
5 days
Afreeca Starleague
6 days
WardiTV Weekly
6 days
Liquipedia Results

Completed

Super Anchor Qualifying S3
Blizzard Classic Cup 2026
Big Dog Cup 2026 Div 1

Ongoing

ASL Season 22
CSL 2026 AUTUMN (S22)
Acropolis #5
Acropolis #5 - GSA
Calamity Invitational
Logitech G Play Connect 2026
SL StarSeries Fall 2026
FISSURE Playground #3
BLAST Open Fall 2026
Esports World Cup 2026
BLAST Bounty Summer 2026
BLAST Bounty Summer Qual
Stake Ranked Episode 3
XSE Pro League 2026

Upcoming

Acropolis #5 - GSB
Acropolis #5 - GSC
BSL Season 23
SC4ALL II: Brood War
BSL 23: Non-Korean Championship
HSC XXX
Stellar Fest 2: Lunar Cup
SC4ALL II: StarCraft II
Kung Fu Cup 2026 Grand Finals
RSL Offline Finals
Copium Cup
PGL Major Singapore 2026
Stake Ranked Episode 6
BLAST Rivals Fall 2026
IEM Beijing 2026
Stake Ranked Episode 5
PGL Masters Bucharest 2026
1win Private Club #2
Thunderpick World Champ. '26
ESL Pro League Season 24
Stake Ranked Episode 4
1win Private Club #1
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.