HMAC

SO The hash is generated by the client using the client specific secret key using the hash_hmac inbuilt method.  This hashed value is included in the request header. Request which include this hash value also have a time stamp field set. The server generates it's own hash based on the request content and the client specific key(… Continue reading HMAC

Shuffle an array

The general method for shuffling is biased. Check this - https://spin.atomicobject.com/2014/08/11/fisher-yates-shuffle-randomization-algorithm/ and http://www.i-programmer.info/programming/theory/2744-how-not-to-shuffle-the-kunth-fisher-yates-algorithm.html When shuffling the maximum number of possible outcome can't be more then n!( n is the number of items being shuffled). So if the algo generate more then n! possible outcome then the algo is biased. The Knuth Fisher-Yates Algorithm produces unbiased shuffled outcome. It… Continue reading Shuffle an array

How the Old Napster Worked – setting up a P2P network. 

Link Napster was a mixed Architecture - Client-Server and P2P (Video). Here is what happened when you decided to look for the song: You opened the Napster utility. Napster checked for an Internet connection. If it found a connection, Napster logged you onto the central server. The main purpose of this central server was to… Continue reading How the Old Napster Worked – setting up a P2P network.