{"id":655,"date":"2008-05-30T13:27:53","date_gmt":"2008-05-30T11:27:53","guid":{"rendered":"http:\/\/www.corelan.be:8800\/index.php\/2008\/05\/30\/free-tool-password-generator-dll-for-visual-studio-and-other-languages\/"},"modified":"2008-05-30T13:27:53","modified_gmt":"2008-05-30T11:27:53","slug":"free-tool-password-generator-dll-for-visual-studio-and-other-languages","status":"publish","type":"post","link":"https:\/\/www.corelan.be\/index.php\/2008\/05\/30\/free-tool-password-generator-dll-for-visual-studio-and-other-languages\/","title":{"rendered":"Free Tool - Password Generator dll for Visual Studio (and other languages)"},"content":{"rendered":"<p>Because some of my own applications required the ability to create random passwords, I decided to write a small dll that will allow me to implement the generation of random passwords in a fast and easy way.<\/p>\n<p>You can download the dll from <br \/>\n[download id=\"3\"]<\/p>\n<h4>How to use the dll in Visual Studio<\/h4>\n<p>Create a new Visual Studio project.\u00a0 In my example below, I've used a Windows Console application in C#, but you can use the dll in any Visual Studio project.<\/p>\n<p>Click \"Project\" - \"Add reference\". Open the \"Browse\" tabsheet and browse to the dll file. Select the dll file and click \"OK\" to add the reference to your project.<\/p>\n<p>You should now see a reference to the dll in the Visual Studio Solution Explorer.<\/p>\n<p><a href=\"\/wp-content\/uploads\/2008\/09\/image-27.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"\/wp-content\/uploads\/2008\/09\/image-2-thumb4.png\" alt=\"image_2\" width=\"235\" height=\"147\" \/><\/a><\/p>\n<p>The simple console application that demonstrates some of the possibilities of the password generator looks like this :<\/p>\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"2\" width=\"400\">\n<tbody>\n<tr>\n<td width=\"400\" valign=\"top\">\n<pre class=\"code\"><span style=\"font-size: xx-small;\"><span style=\"color: blue;\">using <\/span>System;\n<span style=\"color: blue;\">using <\/span>System.Collections.Generic;\n<span style=\"color: blue;\">using <\/span>System.Text;\n\n<span style=\"color: blue;\">namespace <\/span>RandomPW_Test\n{\n    <span style=\"color: blue;\">class <\/span><\/span><span style=\"font-size: xx-small;\"><span style=\"color: #2b91af;\">Program\n    <\/span>{\n        <span style=\"color: blue;\">static void <\/span>Main(<span style=\"color: blue;\">string<\/span>[] args)\n        {\n            <span style=\"color: #2b91af;\">Console<\/span>.WriteLine(<span style=\"color: #a31515;\">\"\\nFull character set passwords :\"<\/span>);\n            <span style=\"color: blue;\">for <\/span>(<span style=\"color: blue;\">int <\/span>i = 0; i &lt; 15; i++)\n            {\n                <\/span><span style=\"font-size: xx-small;\"><span style=\"color: green;\">\/\/create password will all character groups\n                <\/span><span style=\"color: #2b91af;\">Console<\/span>.WriteLine(<span style=\"color: #2b91af;\">PVEPasswordGenerator<\/span>.GeneratePassword(20));\n            }\n            <span style=\"color: #2b91af;\">Console<\/span>.WriteLine(<span style=\"color: #a31515;\">\"\\nLowercase passwords :\"<\/span>);\n            <span style=\"color: blue;\">for <\/span>(<span style=\"color: blue;\">int <\/span>i = 0; i &lt; 15; i++)\n            {\n                <\/span><span style=\"font-size: xx-small;\"><span style=\"color: green;\">\/\/create lowercase passwords only\n                <\/span><span style=\"color: #2b91af;\">Console<\/span>.WriteLine(<span style=\"color: #2b91af;\">PVEPasswordGenerator<\/span>.GeneratePassword(20, <span style=\"color: blue;\">true<\/span>, _<\/span><\/pre>\n<pre class=\"code\"><span style=\"font-size: xx-small;\">                     <span style=\"color: blue;\">false<\/span>, <span style=\"color: blue;\">false<\/span>,<span style=\"color: blue;\">false<\/span>));\n            }\n            <span style=\"color: #2b91af;\">Console<\/span>.WriteLine(<span style=\"color: #a31515;\">\"\\nUppercase passwords :\"<\/span>);\n            <span style=\"color: blue;\">for <\/span>(<span style=\"color: blue;\">int <\/span>i = 0; i &lt; 15; i++)\n            {\n                <\/span><span style=\"font-size: xx-small;\"><span style=\"color: green;\">\/\/create uppercase passwords only\n                <\/span><span style=\"color: #2b91af;\">Console<\/span>.WriteLine(<span style=\"color: #2b91af;\">PVEPasswordGenerator<\/span>.GeneratePassword(20, <span style=\"color: blue;\">false<\/span>, _<\/span><\/pre>\n<pre class=\"code\"><span style=\"font-size: xx-small;\">                    <span style=\"color: blue;\">true<\/span>, <span style=\"color: blue;\">false<\/span>, <span style=\"color: blue;\">false<\/span>));\n            }\n            <span style=\"color: #2b91af;\">Console<\/span>.WriteLine(<span style=\"color: #a31515;\">\"\\nPasswords with numbers and special characters :\"<\/span>);\n            <span style=\"color: blue;\">for <\/span>(<span style=\"color: blue;\">int <\/span>i = 0; i &lt; 15; i++)\n            {\n                <\/span><span style=\"font-size: xx-small;\"><span style=\"color: green;\">\/\/create passwords with numbers and special characters\n                <\/span><span style=\"color: #2b91af;\">Console<\/span>.WriteLine(<span style=\"color: #2b91af;\">PVEPasswordGenerator<\/span>.GeneratePassword(20,<span style=\"color: blue;\">false<\/span>,_<\/span><\/pre>\n<pre class=\"code\"><span style=\"font-size: xx-small;\">                  <span style=\"color: blue;\">false<\/span>,<span style=\"color: blue;\">true<\/span>,<span style=\"color: blue;\">true<\/span>));\n            }\n        }\n    }\n}<\/span><\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>The output of the console application looks like this :<\/p>\n<table border=\"1\">\n<tbody>\n<tr>\n<td>\n<pre><span style=\"font-size: xx-small;\">Full character set passwords :\n6P4Z8SrfwiFx7m3Rs09T\nDR3qZJ4jtxBXon82961P\n9P2L0TmxgeXf1q3Mc67A\n9QMP8pmnkcZ7B26fj03Y\nnQNZ0bAo8Hke732WisX1\nFEjtW92eSx18QL4r57zR\nqj37wKM2m6Ld5eTBFS4t\n0Z1R5WjnMt2d8o6Ez3fY\nfmigD8E962qXnBN75FWr\n3rSgHwi9cxAy07WP682D\nXgH8xi54r0E2Z9JmNS3f\nFYpS524d7Hr9DX1axjZ8\n4rd8k1f673b0CFRjWDPi\n9k0jXWb3a5Aw7cNB8C6f\n6iL9kfe48Xay25MHDpT1\n\nLowercase passwords :\nazykednfjpbcimwosxtg\nkpomfdzganybjreqstic\njrpwfnxcmbyagqdsztoe\naksmzewxtijqpncfrobd\nrictamjxqpdgyksnwzfb\nagdemnwzjpkyxsoqtcir\nxpdckamtbgfyrenqisjz\nsrwbmeyqtfzoanijdcgp\npsoykjxzgmdbqcrfiwat\nqntmzkxfpjawieocrdsg\nqjcgtiwebymsoxzfnkdr\ntbpwknazejcsmdgrqxyi\neidamwpgsjnftrzqykox\nadjopbwmetxyinfgrqzc\nkgebzpmadjtnoxwrsqic\n\nUppercase passwords :\nWXRGKPSNJYMEZLBFCTDH\nATCEHXSJQFWDNBRZPLKM\nTWBASQHFERPMCZLJXDYG\nQZWADLNXHGFCEJKSRMBP\nPRBMTFWYLZSXGQEDJHAN\nNTWXFRGDBPASYQEHMLJZ\nYADSPLZQFJKWEXMBRHGN\nZEFLGMTDKCBJYAWQXPNR\nJKQDHSTMYRBCPNAWLEZF\nPHNSLJYZFBQMADWRCEXK\nBAFNLWJPEHQRDGSXKYCM\nZHQYNEBFGTCDSRKLMPAW\nSBXNZKHWCAQFTDPYJLME\nSRNKZYDFLBCAHWGMTXQP\nQHKXMSPALWJTGEZFRYCN\n\nPasswords with numbers and special characters :\n37$@19&amp;:50;]8=%642,_\n32#+98];06}\/1&amp;|574,&amp;\n46&amp;{57?&amp;18&lt;_2$%309#,\n08{!65*[97_.2-&lt;134?]\n85&lt;_36&amp;?10+*2}&gt;749@]\n28|@13._96&lt;;0+*547}&amp;\n52$\/17;?34[%0]:968!&amp;\n35[.26],78|}1:!094%$\n57&lt;-26[}09]&amp;1&amp;$384&gt;?\n86$&lt;39&amp;#47|=0%}215];\n72?!36;+04}|5*[198]&gt;\n69!{21;&gt;54}+7%[308?|\n61_;43.#87*{9?&amp;052!,\n45@!18{#73:-6%=902$]\n31?\/64[-57];9_=082%+\n<\/span><\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>The GeneratePassword() function takes up to 5 arguments :<\/p>\n<table border=\"1\" cellspacing=\"0\" cellpadding=\"1\" width=\"602\">\n<tbody>\n<tr>\n<td width=\"130\" valign=\"top\"><span style=\"font-size: xx-small;\">Type<\/span><\/td>\n<td width=\"165\" valign=\"top\"><span style=\"font-size: xx-small;\">Variable<\/span><\/td>\n<td width=\"305\" valign=\"top\"><span style=\"font-size: xx-small;\">Description<\/span><\/td>\n<\/tr>\n<tr>\n<td width=\"131\" valign=\"top\"><span style=\"font-size: xx-small;\">int<\/span><\/td>\n<td width=\"167\" valign=\"top\"><span style=\"font-size: xx-small;\">NrOfCharacters<\/span><\/td>\n<td width=\"305\" valign=\"top\"><span style=\"font-size: xx-small;\">This variable allows you to define the length<\/p>\n<p>(number of characters) of the password. <\/span><\/td>\n<\/tr>\n<tr>\n<td width=\"131\" valign=\"top\"><span style=\"font-size: xx-small;\">Boolean<\/span><\/td>\n<td width=\"169\" valign=\"top\"><span style=\"font-size: xx-small;\">UseLowerCaseCharacters<\/span><\/td>\n<td width=\"305\" valign=\"top\"><span style=\"font-size: xx-small;\">True or False.\u00a0 If set to True, the password<\/p>\n<p>will contain lowercase characters<\/span><\/td>\n<\/tr>\n<tr>\n<td width=\"131\" valign=\"top\"><span style=\"font-size: xx-small;\">Boolean<\/span><\/td>\n<td width=\"171\" valign=\"top\"><span style=\"font-size: xx-small;\">UseUpperCaseCharacters<\/span><\/td>\n<td width=\"305\" valign=\"top\"><span style=\"font-size: xx-small;\">True or False.\u00a0 If set to True, the password<\/p>\n<p>will contain uppercase characters<\/span><\/td>\n<\/tr>\n<tr>\n<td width=\"131\" valign=\"top\"><span style=\"font-size: xx-small;\">Boolean<\/span><\/td>\n<td width=\"173\" valign=\"top\"><span style=\"font-size: xx-small;\">UseNumbers<\/span><\/td>\n<td width=\"305\" valign=\"top\"><span style=\"font-size: xx-small;\">True or False. If set to True, the password<\/p>\n<p>will contain numbers<\/span><\/td>\n<\/tr>\n<tr>\n<td width=\"131\" valign=\"top\"><span style=\"font-size: xx-small;\">Boolean<\/span><\/td>\n<td width=\"175\" valign=\"top\"><span style=\"font-size: xx-small;\">UseOtherCharacters<\/span><\/td>\n<td width=\"305\" valign=\"top\"><span style=\"font-size: xx-small;\">True or False. If set to True, the password<\/p>\n<p>will contain special characters<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Character sets :<\/p>\n<table border=\"1\" cellspacing=\"0\" cellpadding=\"1\" width=\"604\">\n<tbody>\n<tr>\n<td width=\"226\" valign=\"top\"><span style=\"font-size: xx-small;\">Lower Case<\/span><\/td>\n<td width=\"376\" valign=\"top\"><span style=\"font-size: xx-small;\">abcdefghijklmnopqrstuvwxyz<\/span><\/td>\n<\/tr>\n<tr>\n<td width=\"227\" valign=\"top\"><span style=\"font-size: xx-small;\">Upper Case<\/span><\/td>\n<td width=\"376\" valign=\"top\"><span style=\"font-size: xx-small;\">ABCDEFGHIJKLMNOPQRSTUVWXYZ<\/span><\/td>\n<\/tr>\n<tr>\n<td width=\"227\" valign=\"top\"><span style=\"font-size: xx-small;\">Numbers<\/span><\/td>\n<td width=\"376\" valign=\"top\"><span style=\"font-size: xx-small;\">0123456789<\/span><\/td>\n<\/tr>\n<tr>\n<td width=\"228\" valign=\"top\"><span style=\"font-size: xx-small;\">Special Characters<\/span><\/td>\n<td width=\"376\" valign=\"top\"><span style=\"font-size: xx-small;\">*$-+?_&amp;=!%{}\/[]@#&amp;|:;,.&lt;&gt;<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>If you launch the function without any parameters, a password of 8 characters will be created, using all character sets.<\/p>\n<p>The dll works fine for me, but if you encouter bugs or strange behaviour, let me know.<\/p>\n<h4>\nUsing custom character sets<\/h4>\n<p>You can use your own character set by setting some variables prior to generating the password.<\/p>\n<p>These 4 variables are :<\/p>\n<p><a href=\"\/wp-content\/uploads\/2008\/09\/image-47.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"\/wp-content\/uploads\/2008\/09\/image-4-thumb4.png\" alt=\"image_4\" width=\"276\" height=\"164\" \/><\/a><\/p>\n<p><strong>(string) PW_CHARS_LCASE<\/p>\n<p>(string) PW_CHARS_UCASE <\/strong><\/p>\n<p><strong>(string) PW_CHARS_NUMERIC <\/strong><\/p>\n<p><strong>(string) PW_CHARS_SPECIAL<\/strong><\/p>\n<p>In C#, this is how you can set or get the values of those variables :<\/p>\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"2\" width=\"400\">\n<tbody>\n<tr>\n<td width=\"400\" valign=\"top\">\n<pre class=\"code\"><span style=\"font-size: xx-small;\"><span style=\"color: #2b91af;\">Console<\/span>.WriteLine(<span style=\"color: #a31515;\">\"\\nCurrent lcase character set is : \" <\/span>+ <span style=\"color: #2b91af;\">PVEPasswordGenerator<\/span>.PW_CHARS_LCASE);\n<span style=\"color: #2b91af;\">Console<\/span>.WriteLine(<span style=\"color: #a31515;\">\"\\nLowercase password, but with limited character set of abcde\"<\/span>);\n<span style=\"color: #2b91af;\">PVEPasswordGenerator<\/span>.PW_CHARS_LCASE = <span style=\"color: #a31515;\">\"abcde\"<\/span>;\n<span style=\"color: blue;\">for <\/span>(<span style=\"color: blue;\">int <\/span>i = 0; i &lt; 15; i++)\n{\n  <span style=\"color: #2b91af;\">Console<\/span>.WriteLine(<span style=\"color: #2b91af;\">PVEPasswordGenerator<\/span>.GeneratePassword(20,<span style=\"color: blue;\">true<\/span>,<span style=\"color: blue;\">false<\/span>,<span style=\"color: blue;\">false<\/span>,<span style=\"color: blue;\">false<\/span>));\n}\n<\/span><span style=\"font-size: xx-small;\"><span style=\"color: green;\">\/\/set all new characters\n<\/span><span style=\"color: #2b91af;\">PVEPasswordGenerator<\/span>.PW_CHARS_LCASE = <span style=\"color: #a31515;\">\"abc\"<\/span>;\n<span style=\"color: #2b91af;\">PVEPasswordGenerator<\/span>.PW_CHARS_UCASE = <span style=\"color: #a31515;\">\"ABC\"<\/span>;\n<span style=\"color: #2b91af;\">PVEPasswordGenerator<\/span>.PW_CHARS_NUMERIC = <span style=\"color: #a31515;\">\"012\"<\/span>;\n<span style=\"color: #2b91af;\">PVEPasswordGenerator<\/span>.PW_CHARS_SPECIAL = <span style=\"color: #a31515;\">\"-+?\"<\/span>;\n\n<span style=\"color: #2b91af;\">Console<\/span>.WriteLine(<span style=\"color: #a31515;\">\"\\nFull character set passwords, with limited set of characters\"<\/span>);\n<span style=\"color: blue;\">for <\/span>(<span style=\"color: blue;\">int <\/span>i = 0; i &lt; 15; i++)\n{\n   <span style=\"color: #2b91af;\">Console<\/span>.WriteLine(<span style=\"color: #2b91af;\">PVEPasswordGenerator<\/span>.GeneratePassword(20, <span style=\"color: blue;\">true<\/span>, <span style=\"color: blue;\">true<\/span>, <span style=\"color: blue;\">true<\/span>, <span style=\"color: blue;\">true<\/span>));\n}<\/span><\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>The output of these 2 iterations looks like this :<\/p>\n<table border=\"1\">\n<tbody>\n<tr>\n<td>\n<pre><span style=\"font-size: xx-small;\">Current lcase character set is : abcdefghijklmnopqrstuvwxyz\n\nLowercase password, but with limited character set of abcde\nbbadddeacadecebcceab\ndcdabcecbeabacaeeddb\ncdbaecdbbaeeccadabed\naaaeecebdbcdddacecbb\ndacbcceebbdaebdcedaa\nbbdeabdcaadccabeedce\nedcedbdeaacbbacecabd\neddbaaaeebbcecdcdcab\ncdeacdbaaecabbeeddbc\ndbdcacaeabeedabccedb\naacadabddcbdbecceeeb\nbeeabcedaddcdbccaeba\nebaebedddccaccaebdab\ncccbdabeeaadadcdeebb\ncdeadadbeeabcdbcaebc\n\nFull character set passwords, with limited set of characters\n?C-a+-c1bB12B2A?bc0A\n1+-aA0cBB?0C12Ccbb?+\ncb2+01-aC0?AAcB1?-aC\n?+bCaCb-cAA0-1?2cB02\ncCA-b1?a2A?-10ac0+BC\n+?cAacB2bCB0+2-0bC1-\n-b0ac1bBC0?c+A-2AB1+\n+A+12C0c0B?1CBbaa-c?\nbC?A2a-C02-BBb1a?+c1\n2bBc1?Bb2ACaa?0++A-1\n1A2-B-Ba0C+c?cCb?1a0\n2-A?2Cb?+0aB-caAbC11\n220BaA-cbB01??+c-aCC\nA2B-cC00AaC?2+1c-b?b\n101+cBa?abcC?+2BAA2-<\/span><\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Note : In case you were wondering : the dll does not use the default Windows randomizer, which is based on the current time. (So if you use that randomizer, all random functions within the same second will return the same value.). In fact, my dll uses a random seed (and not the current time), and the string that results from the password generator routing is then scrambled again.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Because some of my own applications required the ability to create random passwords, I decided to write a small dll that will allow me to implement the generation of random passwords in a fast and easy way. You can download the dll from [download id=\"3\"] How to use the dll in Visual Studio Create a &hellip; <a href=\"https:\/\/www.corelan.be\/index.php\/2008\/05\/30\/free-tool-password-generator-dll-for-visual-studio-and-other-languages\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> \"Free Tool - Password Generator dll for Visual Studio (and other languages)\"<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[488,957],"tags":[955,484],"class_list":["post-655","post","type-post","status-publish","format-standard","hentry","category-corelan-free-tools","category-development","tag-c","tag-free-tool"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Free Tool - Password Generator dll for Visual Studio (and other languages) - Corelan | Exploit Development &amp; Vulnerability Research<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.corelan.be\/index.php\/2008\/05\/30\/free-tool-password-generator-dll-for-visual-studio-and-other-languages\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Free Tool - Password Generator dll for Visual Studio (and other languages) - Corelan | Exploit Development &amp; Vulnerability Research\" \/>\n<meta property=\"og:description\" content=\"Because some of my own applications required the ability to create random passwords, I decided to write a small dll that will allow me to implement the generation of random passwords in a fast and easy way. You can download the dll from [download id=&quot;3&quot;] How to use the dll in Visual Studio Create a &hellip; Continue reading &quot;Free Tool - Password Generator dll for Visual Studio (and other languages)&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.corelan.be\/index.php\/2008\/05\/30\/free-tool-password-generator-dll-for-visual-studio-and-other-languages\/\" \/>\n<meta property=\"og:site_name\" content=\"Corelan | Exploit Development &amp; Vulnerability Research\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/corelanconsulting\" \/>\n<meta property=\"article:published_time\" content=\"2008-05-30T11:27:53+00:00\" \/>\n<meta name=\"author\" content=\"corelanc0d3r\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@corelanc0d3r\" \/>\n<meta name=\"twitter:site\" content=\"@corelanc0d3r\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"TechArticle\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2008\\\/05\\\/30\\\/free-tool-password-generator-dll-for-visual-studio-and-other-languages\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2008\\\/05\\\/30\\\/free-tool-password-generator-dll-for-visual-studio-and-other-languages\\\/\"},\"author\":{\"name\":\"corelanc0d3r\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#\\\/schema\\\/person\\\/3be5542b9b0a0787893db83a5ad68e8f\"},\"headline\":\"Free Tool - Password Generator dll for Visual Studio (and other languages)\",\"datePublished\":\"2008-05-30T11:27:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2008\\\/05\\\/30\\\/free-tool-password-generator-dll-for-visual-studio-and-other-languages\\\/\"},\"wordCount\":430,\"publisher\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#organization\"},\"keywords\":[\"C#\",\"free tool\"],\"articleSection\":[\"Corelan Free Tools\",\"Development\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2008\\\/05\\\/30\\\/free-tool-password-generator-dll-for-visual-studio-and-other-languages\\\/\",\"url\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2008\\\/05\\\/30\\\/free-tool-password-generator-dll-for-visual-studio-and-other-languages\\\/\",\"name\":\"Free Tool - Password Generator dll for Visual Studio (and other languages) - Corelan | Exploit Development &amp; Vulnerability Research\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#website\"},\"datePublished\":\"2008-05-30T11:27:53+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2008\\\/05\\\/30\\\/free-tool-password-generator-dll-for-visual-studio-and-other-languages\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2008\\\/05\\\/30\\\/free-tool-password-generator-dll-for-visual-studio-and-other-languages\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2008\\\/05\\\/30\\\/free-tool-password-generator-dll-for-visual-studio-and-other-languages\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.corelan.be\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Free Tool &#8211; Password Generator dll for Visual Studio (and other languages)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#website\",\"url\":\"https:\\\/\\\/www.corelan.be\\\/\",\"name\":\"Corelan CyberSecurity Research\",\"description\":\"Corelan publishes in-depth tutorials on exploit development, Windows exploitation, vulnerability research, heap internals, reverse engineering and security tooling used by professionals worldwide.\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.corelan.be\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#organization\",\"name\":\"Corelan CyberSecurity Research\",\"url\":\"https:\\\/\\\/www.corelan.be\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.corelan.be\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/corelanlogo2_small-20.png\",\"contentUrl\":\"https:\\\/\\\/www.corelan.be\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/corelanlogo2_small-20.png\",\"width\":200,\"height\":200,\"caption\":\"Corelan CyberSecurity Research\"},\"image\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/corelanconsulting\",\"https:\\\/\\\/x.com\\\/corelanc0d3r\",\"https:\\\/\\\/x.com\\\/corelanconsulting\",\"https:\\\/\\\/instagram.com\\\/corelanconsult\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#\\\/schema\\\/person\\\/3be5542b9b0a0787893db83a5ad68e8f\",\"name\":\"corelanc0d3r\",\"pronouns\":\"he\\\/him\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3783bed6acd72d7fa5bb2387d88acbb9a3403e7cada60b2037e1cbb74ad451f9?s=96&d=mm&r=x\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3783bed6acd72d7fa5bb2387d88acbb9a3403e7cada60b2037e1cbb74ad451f9?s=96&d=mm&r=x\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3783bed6acd72d7fa5bb2387d88acbb9a3403e7cada60b2037e1cbb74ad451f9?s=96&d=mm&r=x\",\"caption\":\"corelanc0d3r\"},\"description\":\"Peter Van Eeckhoutte is the founder of Corelan and a globally recognized expert in exploit development and vulnerability research. With over two decades in IT security, he built Corelan into a respected platform for deep technical research, hands-on training, and knowledge sharing. Known for his influential exploit development tutorials, tools, and real-world training, Peter combines a strong research mindset with a passion for education\u2014helping security professionals understand not just how exploits work, but why.\",\"sameAs\":[\"https:\\\/\\\/www.corelan-training.com\",\"https:\\\/\\\/instagram.com\\\/corelanc0d3r\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/petervaneeckhoutte\\\/\",\"https:\\\/\\\/x.com\\\/corelanc0d3r\"],\"url\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/author\\\/admin0\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Free Tool - Password Generator dll for Visual Studio (and other languages) - Corelan | Exploit Development &amp; Vulnerability Research","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.corelan.be\/index.php\/2008\/05\/30\/free-tool-password-generator-dll-for-visual-studio-and-other-languages\/","og_locale":"en_US","og_type":"article","og_title":"Free Tool - Password Generator dll for Visual Studio (and other languages) - Corelan | Exploit Development &amp; Vulnerability Research","og_description":"Because some of my own applications required the ability to create random passwords, I decided to write a small dll that will allow me to implement the generation of random passwords in a fast and easy way. You can download the dll from [download id=\"3\"] How to use the dll in Visual Studio Create a &hellip; Continue reading \"Free Tool - Password Generator dll for Visual Studio (and other languages)\"","og_url":"https:\/\/www.corelan.be\/index.php\/2008\/05\/30\/free-tool-password-generator-dll-for-visual-studio-and-other-languages\/","og_site_name":"Corelan | Exploit Development &amp; Vulnerability Research","article_publisher":"https:\/\/www.facebook.com\/corelanconsulting","article_published_time":"2008-05-30T11:27:53+00:00","author":"corelanc0d3r","twitter_card":"summary_large_image","twitter_creator":"@corelanc0d3r","twitter_site":"@corelanc0d3r","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"TechArticle","@id":"https:\/\/www.corelan.be\/index.php\/2008\/05\/30\/free-tool-password-generator-dll-for-visual-studio-and-other-languages\/#article","isPartOf":{"@id":"https:\/\/www.corelan.be\/index.php\/2008\/05\/30\/free-tool-password-generator-dll-for-visual-studio-and-other-languages\/"},"author":{"name":"corelanc0d3r","@id":"https:\/\/www.corelan.be\/#\/schema\/person\/3be5542b9b0a0787893db83a5ad68e8f"},"headline":"Free Tool - Password Generator dll for Visual Studio (and other languages)","datePublished":"2008-05-30T11:27:53+00:00","mainEntityOfPage":{"@id":"https:\/\/www.corelan.be\/index.php\/2008\/05\/30\/free-tool-password-generator-dll-for-visual-studio-and-other-languages\/"},"wordCount":430,"publisher":{"@id":"https:\/\/www.corelan.be\/#organization"},"keywords":["C#","free tool"],"articleSection":["Corelan Free Tools","Development"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.corelan.be\/index.php\/2008\/05\/30\/free-tool-password-generator-dll-for-visual-studio-and-other-languages\/","url":"https:\/\/www.corelan.be\/index.php\/2008\/05\/30\/free-tool-password-generator-dll-for-visual-studio-and-other-languages\/","name":"Free Tool - Password Generator dll for Visual Studio (and other languages) - Corelan | Exploit Development &amp; Vulnerability Research","isPartOf":{"@id":"https:\/\/www.corelan.be\/#website"},"datePublished":"2008-05-30T11:27:53+00:00","breadcrumb":{"@id":"https:\/\/www.corelan.be\/index.php\/2008\/05\/30\/free-tool-password-generator-dll-for-visual-studio-and-other-languages\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.corelan.be\/index.php\/2008\/05\/30\/free-tool-password-generator-dll-for-visual-studio-and-other-languages\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.corelan.be\/index.php\/2008\/05\/30\/free-tool-password-generator-dll-for-visual-studio-and-other-languages\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.corelan.be\/"},{"@type":"ListItem","position":2,"name":"Free Tool &#8211; Password Generator dll for Visual Studio (and other languages)"}]},{"@type":"WebSite","@id":"https:\/\/www.corelan.be\/#website","url":"https:\/\/www.corelan.be\/","name":"Corelan CyberSecurity Research","description":"Corelan publishes in-depth tutorials on exploit development, Windows exploitation, vulnerability research, heap internals, reverse engineering and security tooling used by professionals worldwide.","publisher":{"@id":"https:\/\/www.corelan.be\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.corelan.be\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.corelan.be\/#organization","name":"Corelan CyberSecurity Research","url":"https:\/\/www.corelan.be\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.corelan.be\/#\/schema\/logo\/image\/","url":"https:\/\/www.corelan.be\/wp-content\/uploads\/2026\/03\/corelanlogo2_small-20.png","contentUrl":"https:\/\/www.corelan.be\/wp-content\/uploads\/2026\/03\/corelanlogo2_small-20.png","width":200,"height":200,"caption":"Corelan CyberSecurity Research"},"image":{"@id":"https:\/\/www.corelan.be\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/corelanconsulting","https:\/\/x.com\/corelanc0d3r","https:\/\/x.com\/corelanconsulting","https:\/\/instagram.com\/corelanconsult"]},{"@type":"Person","@id":"https:\/\/www.corelan.be\/#\/schema\/person\/3be5542b9b0a0787893db83a5ad68e8f","name":"corelanc0d3r","pronouns":"he\/him","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/3783bed6acd72d7fa5bb2387d88acbb9a3403e7cada60b2037e1cbb74ad451f9?s=96&d=mm&r=x","url":"https:\/\/secure.gravatar.com\/avatar\/3783bed6acd72d7fa5bb2387d88acbb9a3403e7cada60b2037e1cbb74ad451f9?s=96&d=mm&r=x","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3783bed6acd72d7fa5bb2387d88acbb9a3403e7cada60b2037e1cbb74ad451f9?s=96&d=mm&r=x","caption":"corelanc0d3r"},"description":"Peter Van Eeckhoutte is the founder of Corelan and a globally recognized expert in exploit development and vulnerability research. With over two decades in IT security, he built Corelan into a respected platform for deep technical research, hands-on training, and knowledge sharing. Known for his influential exploit development tutorials, tools, and real-world training, Peter combines a strong research mindset with a passion for education\u2014helping security professionals understand not just how exploits work, but why.","sameAs":["https:\/\/www.corelan-training.com","https:\/\/instagram.com\/corelanc0d3r","https:\/\/www.linkedin.com\/in\/petervaneeckhoutte\/","https:\/\/x.com\/corelanc0d3r"],"url":"https:\/\/www.corelan.be\/index.php\/author\/admin0\/"}]}},"views":2749,"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/posts\/655","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/comments?post=655"}],"version-history":[{"count":0,"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/posts\/655\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/media?parent=655"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/categories?post=655"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/tags?post=655"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}