• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 18:17
CET 23:17
KST 07:17
  • 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
ByuL: The Forgotten Master of ZvT30Behind the Blue - Team Liquid History Book19Clem wins HomeStory Cup 289HomeStory Cup 28 - Info & Preview13Rongyi Cup S3 - Preview & Info8
Community News
BGE Stara Zagora 2026 cancelled10Blizzard Classic Cup - Tastosis announced as captains12Weekly Cups (March 2-8): ByuN overcomes PvT block4GSL CK - New online series18BSL Season 224
StarCraft 2
General
BGE Stara Zagora 2026 cancelled BGE Stara Zagora 2026 announced ByuL: The Forgotten Master of ZvT Terran AddOns placement Blizzard Classic Cup - Tastosis announced as captains
Tourneys
StarCraft Evolution League (SC Evo Biweekly) [GSL CK] Team Maru vs. Team herO WardiTV Team League Season 10 Master Swan Open (Global Bronze-Master 2) RSL Season 4 announced for March-April
Strategy
Custom Maps
Publishing has been re-enabled! [Feb 24th 2026] Map Editor closed ?
External Content
The PondCast: SC2 News & Results Mutation # 516 Specter of Death Mutation # 515 Together Forever Mutation # 514 Ulnar New Year
Brood War
General
BGH Auto Balance -> http://bghmmr.eu/ ASL21 General Discussion BW General Discussion Gypsy to Korea Are you ready for ASL 21? Hype VIDEO
Tourneys
[Megathread] Daily Proleagues [BSL22] Open Qualifiers & Ladder Tours IPSL Spring 2026 is here! ASL Season 21 Qualifiers March 7-8
Strategy
Simple Questions, Simple Answers Soma's 9 hatch build from ASL Game 2 Fighting Spirit mining rates Zealot bombing is no longer popular?
Other Games
General Games
Stormgate/Frost Giant Megathread Path of Exile Nintendo Switch Thread PC Games Sales Thread No Man's Sky (PS4 and PC)
Dota 2
Official 'what is Dota anymore' discussion The Story of Wings Gaming
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
Five o'clock TL Mafia Mafia Game Mode Feedback/Ideas Vanilla Mini Mafia TL Mafia Community Thread
Community
General
US Politics Mega-thread Things Aren’t Peaceful in Palestine Russo-Ukrainian War Thread Mexico's Drug War NASA and the Private Sector
Fan Clubs
The IdrA Fan Club
Media & Entertainment
Movie Discussion! [Req][Books] Good Fantasy/SciFi books [Manga] One Piece
Sports
Formula 1 Discussion 2024 - 2026 Football Thread General nutrition recommendations Cricket [SPORT] TL MMA Pick'em Pool 2013
World Cup 2022
Tech Support
Laptop capable of using Photoshop Lightroom?
TL Community
The Automated Ban List
Blogs
Iranian anarchists: organize…
XenOsky
FS++
Kraekkling
Shocked by a laser…
Spydermine0240
Gaming-Related Deaths
TrAiDoS
Unintentional protectionism…
Uldridge
ASL S21 English Commentary…
namkraft
Customize Sidebar...

Website Feedback

Closed Threads



Active: 1472 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
Poland17692 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
Poland17692 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
Poland17692 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 1h 43m
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
mouzHeroMarine 719
ProTech135
JuggernautJason92
StarCraft: Brood War
NaDa 20
Dota 2
monkeys_forever147
capcasts57
Counter-Strike
fl0m4022
Coldzera 405
minikerr2
Heroes of the Storm
Liquid`Hasu357
Khaldor127
Other Games
gofns34310
summit1g9449
FrodaN4043
Grubby3973
B2W.Neo533
byalli437
KnowMe427
DeMusliM334
C9.Mang0202
shahzam148
ViBE26
Organizations
Other Games
gamesdonequick1936
ComeBackTV 209
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
sctven
[ Show 17 non-featured ]
StarCraft 2
• davetesta26
• LaughNgamezSOOP
• sooper7s
• AfreecaTV YouTube
• intothetv
• Migwel
• Kozan
• IndyKCrew
StarCraft: Brood War
• RayReign 64
• blackmanpl 33
• STPLYoutube
• ZZZeroYoutube
• BSLYoutube
Dota 2
• masondota21000
League of Legends
• Doublelift3677
Other Games
• imaqtpie1233
• Scarra844
Upcoming Events
Replay Cast
1h 43m
CranKy Ducklings
11h 43m
RSL Revival
11h 43m
MaxPax vs Rogue
Clem vs Bunny
WardiTV Team League
13h 43m
uThermal 2v2 Circuit
18h 43m
BSL
21h 43m
Sparkling Tuna Cup
1d 11h
RSL Revival
1d 11h
ByuN vs SHIN
Maru vs Krystianer
WardiTV Team League
1d 13h
Patches Events
1d 18h
[ Show More ]
BSL
1d 21h
Replay Cast
2 days
Replay Cast
2 days
Wardi Open
2 days
Monday Night Weeklies
2 days
WardiTV Team League
3 days
GSL
4 days
The PondCast
5 days
WardiTV Team League
5 days
Replay Cast
6 days
WardiTV Team League
6 days
Liquipedia Results

Completed

Proleague 2026-03-12
WardiTV Winter 2026
Underdog Cup #3

Ongoing

KCM Race Survival 2026 Season 1
Jeongseon Sooper Cup
BSL Season 22
Proleague 2026-03-13
RSL Revival: Season 4
Nations Cup 2026
ESL Pro League S23 Finals
ESL Pro League S23 Stage 1&2
PGL Cluj-Napoca 2026
IEM Kraków 2026
BLAST Bounty Winter 2026
BLAST Bounty Winter Qual

Upcoming

CSL Elite League 2026
ASL Season 21
Acropolis #4 - TS6
2026 Changsha Offline CUP
Acropolis #4
IPSL Spring 2026
CSLAN 4
HSC XXIX
uThermal 2v2 2026 Main Event
NationLESS Cup
CS Asia Championships 2026
Asian Champions League 2026
IEM Atlanta 2026
PGL Astana 2026
BLAST Rivals Spring 2026
CCT Season 3 Global Finals
IEM Rio 2026
PGL Bucharest 2026
Stake Ranked Episode 1
BLAST Open Spring 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.