I actually just finished reinventing this particular wheel today!

My sketch didn't need password stuff, though. I press "*" then type a 3 to 4 digit time then press "#" and it sets the clock to that time pressing the buttons at 30Hz. VERY FAST.
My code for scanning the keypad(in case you were wondering).
void getKey() {
for(int col = 0; col < 3; col++) {
digitalWrite(colPin[col], LOW);
for(int row = 0; row < 4; row++) {
if(!digitalRead(rowPin[row])) {
lastPressed = key[row][col];
pressCount++; //for telling if a new key was pressed
delay(debounceTime);
}
}
digitalWrite(colPin[col], HIGH);
}
}
Pretty straight forward. There is more to it obviously. For instance the code that makes it so it will only take the time input when the "*" has been pressed first and so on..
Oh.. I can also set my alarm from my cell phone.