Git Product home page Git Product logo

crypto-random-string's Introduction

crypto-random-string

Generate a cryptographically strong random string

Deno module based on crypto-random-string. Useful for creating an identifier, slug, salt, PIN code, fixture, etc.

Import Module

import { cryptoRandomString } from "https://deno.land/x/[email protected]/mod.ts"
// or
import { cryptoRandomString } from "https://github.com/piyush-bhatt/crypto-random-string/raw/main/mod.ts"

Usage

NOTE: Outputs shown below are merely examples. The function will generate random string each time.

cryptoRandomString({length: 10}); // '0696cb9e70'

cryptoRandomString({length: 10, type: 'base64'}); // 'dw3mgWC5uO'

cryptoRandomString({length: 10, type: 'url-safe'}); // '0pN1Y2Jz.X'

cryptoRandomString({length: 10, type: 'numeric'}); // '1639380067'

cryptoRandomString({length: 6, type: 'distinguishable'}); // 'H4HH5D'

cryptoRandomString({length: 10, type: 'ascii-printable'}); // '#I&J.GP./9'

cryptoRandomString({length: 10, type: 'alphanumeric'}); // 'ZtgC2J6aU5'

cryptoRandomString({length: 10, characters: 'abc'}); // 'abcabccbcc'

API

cryptoRandomString(options)

Returns a randomized string. Hex by default.

options

Type: object

length

Required
Type: number

Length of the returned string.

type

Type: string
Default: 'hex'
Values: 'hex' | 'base64' | 'url-safe' | 'numeric' | 'distinguishable' | 'ascii-printable' | 'alphanumeric'

Use only characters from a predefined set of allowed characters.

Cannot be set at the same time as the characters option.

The distinguishable set contains only uppercase characters that are not easily confused: CDEHKMPRTUWXY012458. It can be useful if you need to print out a short string that you'd like users to read and type back in with minimal errors. For example, reading a code off of a screen that needs to be typed into a phone to connect two devices.

The ascii-printable set contains all printable ASCII characters: !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Useful for generating passwords where all possible ASCII characters should be used.

The alphanumeric set contains uppercase letters, lowercase letters, and digits: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789. Useful for generating nonce values.

characters

Type: string
Minimum length: 1
Maximum length: 65536

Use only characters from a custom set of allowed characters.

Cannot be set at the same time as the type option.

Licensing

MIT licensed

crypto-random-string's People

Contributors

erfanium avatar piyush-bhatt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

lino-levan

crypto-random-string's Issues

Importing cryptoRandomString from deno.land doesn't work

I'm trying to put together a simple todo app with Deno and am running into an issue where calling crytpoRandomString causes the page to crash without outputting any meaningful error.

The code:

// ..
import { cryptoRandomString } from "https://deno.land/x/[email protected]/mod.ts";

type Props = React.ComponentProps<typeof useDeno>;

type Task = {
  id: string;
  data: string;
};

export default function Home<Props>() {
  const [tasks, setTasks] = useState([] as Task[]);
  const [task, setTask] = useState("");

  const handleAddTask = (e: any) => {
    const newTask: Task = {
      id: cryptoRandomString({
        length: 16,
        type: "abc",
      }),
      data: task,
    };
    setTasks([...tasks, newTask]);
    setTask("");
  };

  // .. 

  return (
   // .. 
   <button onClick={handleAddTask}>Add Task</button>
   // .. 
  );
}

I'm not quite sure why this is happening, but aleph isn't erroring out at the commandline, so this must be some issue with the crypto-random-string lib.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.