There's also Eugene Styer's Javascript DES Example which can be (re-)modified to allow using any key:
623c623
< <td><input name="key" value="0000000000000000" size="25" type="text"></td>
---
> <td><input name="key" value="3b3898371520f75e" readonly="readonly" size="25" type="text"></td>
627c627
< <td><input name="keyb" value="0000000000000000" size="25" type="text"></td>
---
> <td><input name="keyb" value="922fb510c71f436e" readonly="readonly" size="25" type="text"></td>
by removing the readonly attribute (also shows the default keys set to all zeros, supports triple DES as well). You'd save the page and make the above modifications then open the saved page JS-DES.html in a browser.
A copy of the original code allowing the keys to be set can be extracted from the google code dpades source architecture.
The code is found from the decompressed archive by path dpades/trunk/simu_js, extracting JS-DES.html and collocated image directory JS-DES_fichiers. JS-DES.html can be opened in a browser. (The entire archive is 37 MB, Google quit showing the expanded code trees when google code was archived.)
It seems a bit of lesson plan laziness using a fixed key to prevent students from 'cheating' on assignments.
There's also a set of DES validation triplets derived from FIPS Special Pub 500-20 Appendix B: The DES Test Set (Also found on the Internet Archive.)
The triplets are available on github. There may be a single key parity error, I don't recall if I left it corrected. I used the triplets to verify the original libcrypt DES implementation in the early '90s and modified that code to output all the round values. Using JS-DES.html is a bit more convenient (and it passes the validate test set as well).