I need console application that generates a tab delimited text file with 3 columns. The console application should be written in unmanaged C++ using Visual Studio 2003 and accepts 2 parameters as input:
1) the number of records to generate
2) the path to the output file location.
The application should then do the following:
1) Iterate N times, where N is the value of the first parameter.
2) For each iteration it should randomly generate a 30 character string. The 30 character string should be UNIQUE for each run and consist of 36 possible values A-Z0-9. The program must insure that it does not generate two duplicate strings. All strings must be unique for the given run.
3) Using the open source Crypto++ library (avaliable at: <[login to view URL]>) it should generate a SHA-256 hash of the unique string and a CRC-32 hash of the unique string.
4) These three values should then be written to file in the format:
UniqueString/tSHA-256/tCRC-32/n
Where each value is a value in the tab delimited file, and each pair of three forms a row.
5) While the program is generating these values, it should keep track of the SHA-256 hash. If the a duplicate hash is generated, the program should continue running but it should create another text file called [login to view URL] which contains the two unique string that generated the same hash and the hash.
So:
UniqueString/tUniqueString2/SHA-256/n
Where UniqueString and UniqueString2 are the strings that generated the same hash and the SHA-256 is the hash they generated. Each collision that is detected should be entered as another row in collisions.txt.
Edit: Please note, this program will be used to generate hundreds of thousands possibly even millions of records. Please adjust your bids to account for this fact.
## Deliverables
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Deliverables must be in ready-to-run condition, as follows (depending on the nature of the deliverables):
a) For web sites or other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment.
b) For all others including desktop software or software the buyer intends to distribute: A software installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request.
3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).
## Platform
win2k+