Ultra High Security Bittorrent Sync Secrets Generator


Recommended Posts

Guest proactiveservices

I'm not sure if you're kidding or not. Just in case you're serious then you should be using a local application if you want to generate random data. Never rely on a web site, especially a site that has nothing to do with security and all to do with marketing, like grc.com. If you look at the source of that page you'll find that the "random" data is generated by the server, not your browser. Now ask yourself why this is and what could be bad about it :-)

Link to comment
Share on other sites

  • 1 month later...

The secret generated via a website can also be *stored* by that website,   meaning.. your "secret" isn't secret,  it's known to you and whatever entity generated it.


Depending on your content,  that might be acceptable,  or it might not.  Only you can determine that.

Link to comment
Share on other sites

  • 1 month later...

Here is a piece of C# code that will make you a secure random string:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Windows.Forms;
namespace RandomString
    internal static class Program
        private static string RandomString(int length, string allowedChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789")
            if (length < 0) throw new ArgumentOutOfRangeException("length", "length cannot be less than zero.");
            if (string.IsNullOrEmpty(allowedChars)) throw new ArgumentException("allowedChars may not be empty.");
            const int byteSize = 0x100;
            char[] allowedCharSet = new HashSet<char>(allowedChars).ToArray();
            if (byteSize < allowedCharSet.Length)
                throw new ArgumentException(String.Format("allowedChars may contain no more than {0} characters.",
            // Guid.NewGuid and System.Random are not particularly random. By using a
            // cryptographically-secure random number generator, the caller is always
            // protected, regardless of use.
            using (var rng = new RNGCryptoServiceProvider())
                var result = new StringBuilder();
                var buf = new byte[128];
                while (result.Length < length)
                    for (int i = 0; i < buf.Length && result.Length < length; ++i)
                        // Divide the byte into allowedCharSet-sized groups. If the
                        // random value falls into the last group and the last group is
                        // too small to choose from the entire allowedCharSet, ignore
                        // the value in order to avoid biasing the result.
                        int outOfRangeStart = byteSize - (byteSize%allowedCharSet.Length);
                        if (outOfRangeStart <= buf) continue;
                return result.ToString();
        private static void Main()
Link to comment
Share on other sites

  • 2 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.