I'm in the process of designing a library system. There's one application for the librarian to manage books, manage users, etc.

But, we also need to ensure that subscriptions are paid on time in this system and to ensure only people who have an active subscription can enter the library.

My solution to the above problem is, the library could issue a membership card with a "QR Code" printed on it. Users could point their cards on a computer with an application open which reads the QR Code, identifies the user, and reminds the user if they have to return any books if so which, and if they have to pay their subscription. I thought of generating a random 16 digit alphanumeric token that would be unique to every single user, and the QR Code will basically represent that particular token. Would this be a secure way to grant access to library users? At first, I thought of entering usernames and passwords, but that would be highly inconvenient and others around would be able to see the user type them, also, if they forget their credentials, they will keep others waiting. Any suggestions, improvements or better ideas will be highly appreciated.

Your ideas will be highly appreciate. Also, the application is going to developed in C#. Basically, a standalone desktop application.

This project is for learning purposes, so budget is very limited.

  • Downvoters: Please tell me why you down voted so that I can improve the post and fix the issues.
    – codez
    Oct 15, 2016 at 13:18
  • 2
    Bad idea. A QR code can easily be reproduced from a photo taken with a mobile phone. So very high risk somebody does this and takes books in somebody else name. This should at least be a smart card or maybe something based on a small mobile phone app. Oct 15, 2016 at 13:49
  • 1
    @thorstenmüller People have been using paper library cards without passwords for hundreds of years. I see the OP's proposal as nothing more than making that card machine readable. I agree that smart cards or an app would be secure, but how much security is required / can they afford? Security needs & budget for the New York public library are different than those for a small town. Oct 15, 2016 at 14:17
  • 1
    You should be a bit more clear on what kind of behavior you want to prevent. For example: if you want to be sure the person is the real owner of the card you may show the photo of the card holder to the employee. For stolen cards a pin code may prevent unauthorized usage. Etc. authentication is a broad field. Oct 15, 2016 at 14:52
  • 2
    @HassanAlthaf I understood it that the QR code contains this token and nothing else needs to be known. Other guy photographs QR code, prints on paper and can use it. If anything additional needs to be used like a password, this would not be a problem anymore. So using the QR code (or for budget reasons as Dan Pichelman says a barcode is easier, cheaper and possibly the readers are more robust than cameras) only to identify the user as a first step and then have to enter a password (or at least short four digit number) would mostly resolve such problems. Oct 15, 2016 at 15:37

1 Answer 1


Don't use a 16 digit random alphanumeric token, use a GUID or UUID. They're easy to generate, unique, and solve a lot of issues you may not have thought of yet.

As for putting a QR code on a "membership card": my local public library does something similar. There are scanning stations by the exits to the library and my library card has a simple bar code on it. They scan the bar code, scan the books, then I leave. There are the usual anti-theft RF scanners that clothing stores use to prevent shoplifting. It works well and in our case is self-service.

A cheaper solution would be to give the librarian a bar code scanner & use that to scan both books and library cards. Use a linear bar code such as Code 39 - QR is overkill and requires a camera to read

  • RF is quite expensive here and out of budget. I see. I'll check out the linear bar code.
    – codez
    Oct 15, 2016 at 15:07
  • 1
    The main advantage of linear bar code plus USB bar code scanner is that it saves you from development efforts. Development boards plus camera can be cheap nowadays, but the effort to get a 2D barcode recognition working properly (the most effort isn't even software - it's the mechanical and environmental things like a camera holder, LED lights, and such) may be significant.
    – rwong
    Oct 15, 2016 at 19:23
  • The RF bit has nothing to do with whether or not you use QR or linear bar code, it's just a local anti-theft measure. Oct 15, 2016 at 20:06
  • @DanPichelman I'm aware.
    – codez
    Oct 16, 2016 at 7:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.