New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

flowerpassword.js

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

flowerpassword.js - npm Package Compare versions

Comparing version 1.0.4 to 2.0.0

dist/flowerpassword.js.map

334

dist/flowerpassword.js

@@ -1,332 +0,2 @@

/*
* JavaScript MD5
* https://github.com/blueimp/JavaScript-MD5
*
* Copyright 2011, Sebastian Tschan
* https://blueimp.net
*
* Licensed under the MIT license:
* http://www.opensource.org/licenses/MIT
*
* Based on
* A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
* Digest Algorithm, as defined in RFC 1321.
* Version 2.2 Copyright (C) Paul Johnston 1999 - 2009
* Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
* Distributed under the BSD License
* See http://pajhome.org.uk/crypt/md5 for more info.
*/
/* global define */
;(function ($) {
'use strict'
/*
* Add integers, wrapping at 2^32. This uses 16-bit operations internally
* to work around bugs in some JS interpreters.
*/
function safeAdd (x, y) {
var lsw = (x & 0xFFFF) + (y & 0xFFFF)
var msw = (x >> 16) + (y >> 16) + (lsw >> 16)
return (msw << 16) | (lsw & 0xFFFF)
}
/*
* Bitwise rotate a 32-bit number to the left.
*/
function bitRotateLeft (num, cnt) {
return (num << cnt) | (num >>> (32 - cnt))
}
/*
* These functions implement the four basic operations the algorithm uses.
*/
function md5cmn (q, a, b, x, s, t) {
return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b)
}
function md5ff (a, b, c, d, x, s, t) {
return md5cmn((b & c) | ((~b) & d), a, b, x, s, t)
}
function md5gg (a, b, c, d, x, s, t) {
return md5cmn((b & d) | (c & (~d)), a, b, x, s, t)
}
function md5hh (a, b, c, d, x, s, t) {
return md5cmn(b ^ c ^ d, a, b, x, s, t)
}
function md5ii (a, b, c, d, x, s, t) {
return md5cmn(c ^ (b | (~d)), a, b, x, s, t)
}
/*
* Calculate the MD5 of an array of little-endian words, and a bit length.
*/
function binlMD5 (x, len) {
/* append padding */
x[len >> 5] |= 0x80 << (len % 32)
x[(((len + 64) >>> 9) << 4) + 14] = len
var i
var olda
var oldb
var oldc
var oldd
var a = 1732584193
var b = -271733879
var c = -1732584194
var d = 271733878
for (i = 0; i < x.length; i += 16) {
olda = a
oldb = b
oldc = c
oldd = d
a = md5ff(a, b, c, d, x[i], 7, -680876936)
d = md5ff(d, a, b, c, x[i + 1], 12, -389564586)
c = md5ff(c, d, a, b, x[i + 2], 17, 606105819)
b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330)
a = md5ff(a, b, c, d, x[i + 4], 7, -176418897)
d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426)
c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341)
b = md5ff(b, c, d, a, x[i + 7], 22, -45705983)
a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416)
d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417)
c = md5ff(c, d, a, b, x[i + 10], 17, -42063)
b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162)
a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682)
d = md5ff(d, a, b, c, x[i + 13], 12, -40341101)
c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290)
b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329)
a = md5gg(a, b, c, d, x[i + 1], 5, -165796510)
d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632)
c = md5gg(c, d, a, b, x[i + 11], 14, 643717713)
b = md5gg(b, c, d, a, x[i], 20, -373897302)
a = md5gg(a, b, c, d, x[i + 5], 5, -701558691)
d = md5gg(d, a, b, c, x[i + 10], 9, 38016083)
c = md5gg(c, d, a, b, x[i + 15], 14, -660478335)
b = md5gg(b, c, d, a, x[i + 4], 20, -405537848)
a = md5gg(a, b, c, d, x[i + 9], 5, 568446438)
d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690)
c = md5gg(c, d, a, b, x[i + 3], 14, -187363961)
b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501)
a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467)
d = md5gg(d, a, b, c, x[i + 2], 9, -51403784)
c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473)
b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734)
a = md5hh(a, b, c, d, x[i + 5], 4, -378558)
d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463)
c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562)
b = md5hh(b, c, d, a, x[i + 14], 23, -35309556)
a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060)
d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353)
c = md5hh(c, d, a, b, x[i + 7], 16, -155497632)
b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640)
a = md5hh(a, b, c, d, x[i + 13], 4, 681279174)
d = md5hh(d, a, b, c, x[i], 11, -358537222)
c = md5hh(c, d, a, b, x[i + 3], 16, -722521979)
b = md5hh(b, c, d, a, x[i + 6], 23, 76029189)
a = md5hh(a, b, c, d, x[i + 9], 4, -640364487)
d = md5hh(d, a, b, c, x[i + 12], 11, -421815835)
c = md5hh(c, d, a, b, x[i + 15], 16, 530742520)
b = md5hh(b, c, d, a, x[i + 2], 23, -995338651)
a = md5ii(a, b, c, d, x[i], 6, -198630844)
d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415)
c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905)
b = md5ii(b, c, d, a, x[i + 5], 21, -57434055)
a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571)
d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606)
c = md5ii(c, d, a, b, x[i + 10], 15, -1051523)
b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799)
a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359)
d = md5ii(d, a, b, c, x[i + 15], 10, -30611744)
c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380)
b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649)
a = md5ii(a, b, c, d, x[i + 4], 6, -145523070)
d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379)
c = md5ii(c, d, a, b, x[i + 2], 15, 718787259)
b = md5ii(b, c, d, a, x[i + 9], 21, -343485551)
a = safeAdd(a, olda)
b = safeAdd(b, oldb)
c = safeAdd(c, oldc)
d = safeAdd(d, oldd)
}
return [a, b, c, d]
}
/*
* Convert an array of little-endian words to a string
*/
function binl2rstr (input) {
var i
var output = ''
var length32 = input.length * 32
for (i = 0; i < length32; i += 8) {
output += String.fromCharCode((input[i >> 5] >>> (i % 32)) & 0xFF)
}
return output
}
/*
* Convert a raw string to an array of little-endian words
* Characters >255 have their high-byte silently ignored.
*/
function rstr2binl (input) {
var i
var output = []
output[(input.length >> 2) - 1] = undefined
for (i = 0; i < output.length; i += 1) {
output[i] = 0
}
var length8 = input.length * 8
for (i = 0; i < length8; i += 8) {
output[i >> 5] |= (input.charCodeAt(i / 8) & 0xFF) << (i % 32)
}
return output
}
/*
* Calculate the MD5 of a raw string
*/
function rstrMD5 (s) {
return binl2rstr(binlMD5(rstr2binl(s), s.length * 8))
}
/*
* Calculate the HMAC-MD5, of a key and some data (raw strings)
*/
function rstrHMACMD5 (key, data) {
var i
var bkey = rstr2binl(key)
var ipad = []
var opad = []
var hash
ipad[15] = opad[15] = undefined
if (bkey.length > 16) {
bkey = binlMD5(bkey, key.length * 8)
}
for (i = 0; i < 16; i += 1) {
ipad[i] = bkey[i] ^ 0x36363636
opad[i] = bkey[i] ^ 0x5C5C5C5C
}
hash = binlMD5(ipad.concat(rstr2binl(data)), 512 + data.length * 8)
return binl2rstr(binlMD5(opad.concat(hash), 512 + 128))
}
/*
* Convert a raw string to a hex string
*/
function rstr2hex (input) {
var hexTab = '0123456789abcdef'
var output = ''
var x
var i
for (i = 0; i < input.length; i += 1) {
x = input.charCodeAt(i)
output += hexTab.charAt((x >>> 4) & 0x0F) +
hexTab.charAt(x & 0x0F)
}
return output
}
/*
* Encode a string as utf-8
*/
function str2rstrUTF8 (input) {
return unescape(encodeURIComponent(input))
}
/*
* Take string arguments and return either raw or hex encoded strings
*/
function rawMD5 (s) {
return rstrMD5(str2rstrUTF8(s))
}
function hexMD5 (s) {
return rstr2hex(rawMD5(s))
}
function rawHMACMD5 (k, d) {
return rstrHMACMD5(str2rstrUTF8(k), str2rstrUTF8(d))
}
function hexHMACMD5 (k, d) {
return rstr2hex(rawHMACMD5(k, d))
}
function md5 (string, key, raw) {
if (!key) {
if (!raw) {
return hexMD5(string)
}
return rawMD5(string)
}
if (!raw) {
return hexHMACMD5(key, string)
}
return rawHMACMD5(key, string)
}
if (typeof define === 'function' && define.amd) {
define(function () {
return md5
})
} else if (typeof module === 'object' && module.exports) {
module.exports = md5
} else {
$.md5 = md5
}
}(this))
'use strict';
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
;(function ($, md5) {
'use strict';
/*
* Flower Password
*/
function fpCode(password, key, length) {
var hmd5 = void 0,
rule = void 0,
source = void 0,
str = void 0,
code32 = void 0,
code01 = void 0;
length = length || 16;
if (!password || !key || length < 2 || length > 32) {
return null;
}
hmd5 = md5(password, key);
rule = md5(hmd5, 'kise').split('');
source = md5(hmd5, 'snow').split('');
str = 'sunlovesnow1990090127xykab';
for (var i = 0; i < 32; i++) {
if (isNaN(source[i])) {
if (str.search(rule[i]) > -1) {
source[i] = source[i].toUpperCase();
}
}
}
code32 = source.join('');
code01 = code32.slice(0, 1);
return (isNaN(code01) ? code01 : 'K') + code32.slice(1, length);
}
if (typeof define === 'function' && define.amd) {
define(function () {
return fpCode;
});
} else if ((typeof module === 'undefined' ? 'undefined' : _typeof(module)) === 'object' && module.exports) {
module.exports = fpCode;
} else {
$.fpCode = fpCode;
}
})(undefined, md5);
var n="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};var r=function(n,r){return n(r={exports:{}},r.exports),r.exports}(function(r){!function(n){function t(n,r){var t=(65535&n)+(65535&r);return(n>>16)+(r>>16)+(t>>16)<<16|65535&t}function e(n,r,e,o,u,f){return t((i=t(t(r,n),t(o,f)))<<(c=u)|i>>>32-c,e);var i,c}function o(n,r,t,o,u,f,i){return e(r&t|~r&o,n,r,u,f,i)}function u(n,r,t,o,u,f,i){return e(r&o|t&~o,n,r,u,f,i)}function f(n,r,t,o,u,f,i){return e(r^t^o,n,r,u,f,i)}function i(n,r,t,o,u,f,i){return e(t^(r|~o),n,r,u,f,i)}function c(n,r){var e,c,a,l,s;n[r>>5]|=128<<r%32,n[14+(r+64>>>9<<4)]=r;var d=1732584193,v=-271733879,h=-1732584194,p=271733878;for(e=0;e<n.length;e+=16)c=d,a=v,l=h,s=p,d=o(d,v,h,p,n[e],7,-680876936),p=o(p,d,v,h,n[e+1],12,-389564586),h=o(h,p,d,v,n[e+2],17,606105819),v=o(v,h,p,d,n[e+3],22,-1044525330),d=o(d,v,h,p,n[e+4],7,-176418897),p=o(p,d,v,h,n[e+5],12,1200080426),h=o(h,p,d,v,n[e+6],17,-1473231341),v=o(v,h,p,d,n[e+7],22,-45705983),d=o(d,v,h,p,n[e+8],7,1770035416),p=o(p,d,v,h,n[e+9],12,-1958414417),h=o(h,p,d,v,n[e+10],17,-42063),v=o(v,h,p,d,n[e+11],22,-1990404162),d=o(d,v,h,p,n[e+12],7,1804603682),p=o(p,d,v,h,n[e+13],12,-40341101),h=o(h,p,d,v,n[e+14],17,-1502002290),d=u(d,v=o(v,h,p,d,n[e+15],22,1236535329),h,p,n[e+1],5,-165796510),p=u(p,d,v,h,n[e+6],9,-1069501632),h=u(h,p,d,v,n[e+11],14,643717713),v=u(v,h,p,d,n[e],20,-373897302),d=u(d,v,h,p,n[e+5],5,-701558691),p=u(p,d,v,h,n[e+10],9,38016083),h=u(h,p,d,v,n[e+15],14,-660478335),v=u(v,h,p,d,n[e+4],20,-405537848),d=u(d,v,h,p,n[e+9],5,568446438),p=u(p,d,v,h,n[e+14],9,-1019803690),h=u(h,p,d,v,n[e+3],14,-187363961),v=u(v,h,p,d,n[e+8],20,1163531501),d=u(d,v,h,p,n[e+13],5,-1444681467),p=u(p,d,v,h,n[e+2],9,-51403784),h=u(h,p,d,v,n[e+7],14,1735328473),d=f(d,v=u(v,h,p,d,n[e+12],20,-1926607734),h,p,n[e+5],4,-378558),p=f(p,d,v,h,n[e+8],11,-2022574463),h=f(h,p,d,v,n[e+11],16,1839030562),v=f(v,h,p,d,n[e+14],23,-35309556),d=f(d,v,h,p,n[e+1],4,-1530992060),p=f(p,d,v,h,n[e+4],11,1272893353),h=f(h,p,d,v,n[e+7],16,-155497632),v=f(v,h,p,d,n[e+10],23,-1094730640),d=f(d,v,h,p,n[e+13],4,681279174),p=f(p,d,v,h,n[e],11,-358537222),h=f(h,p,d,v,n[e+3],16,-722521979),v=f(v,h,p,d,n[e+6],23,76029189),d=f(d,v,h,p,n[e+9],4,-640364487),p=f(p,d,v,h,n[e+12],11,-421815835),h=f(h,p,d,v,n[e+15],16,530742520),d=i(d,v=f(v,h,p,d,n[e+2],23,-995338651),h,p,n[e],6,-198630844),p=i(p,d,v,h,n[e+7],10,1126891415),h=i(h,p,d,v,n[e+14],15,-1416354905),v=i(v,h,p,d,n[e+5],21,-57434055),d=i(d,v,h,p,n[e+12],6,1700485571),p=i(p,d,v,h,n[e+3],10,-1894986606),h=i(h,p,d,v,n[e+10],15,-1051523),v=i(v,h,p,d,n[e+1],21,-2054922799),d=i(d,v,h,p,n[e+8],6,1873313359),p=i(p,d,v,h,n[e+15],10,-30611744),h=i(h,p,d,v,n[e+6],15,-1560198380),v=i(v,h,p,d,n[e+13],21,1309151649),d=i(d,v,h,p,n[e+4],6,-145523070),p=i(p,d,v,h,n[e+11],10,-1120210379),h=i(h,p,d,v,n[e+2],15,718787259),v=i(v,h,p,d,n[e+9],21,-343485551),d=t(d,c),v=t(v,a),h=t(h,l),p=t(p,s);return[d,v,h,p]}function a(n){var r,t="",e=32*n.length;for(r=0;r<e;r+=8)t+=String.fromCharCode(n[r>>5]>>>r%32&255);return t}function l(n){var r,t=[];for(t[(n.length>>2)-1]=void 0,r=0;r<t.length;r+=1)t[r]=0;var e=8*n.length;for(r=0;r<e;r+=8)t[r>>5]|=(255&n.charCodeAt(r/8))<<r%32;return t}function s(n){var r,t,e="";for(t=0;t<n.length;t+=1)r=n.charCodeAt(t),e+="0123456789abcdef".charAt(r>>>4&15)+"0123456789abcdef".charAt(15&r);return e}function d(n){return unescape(encodeURIComponent(n))}function v(n){return function(n){return a(c(l(n),8*n.length))}(d(n))}function h(n,r){return function(n,r){var t,e,o=l(n),u=[],f=[];for(u[15]=f[15]=void 0,o.length>16&&(o=c(o,8*n.length)),t=0;t<16;t+=1)u[t]=909522486^o[t],f[t]=1549556828^o[t];return e=c(u.concat(l(r)),512+8*r.length),a(c(f.concat(e),640))}(d(n),d(r))}function p(n,r,t){return r?t?h(r,n):s(h(r,n)):t?v(n):s(v(n))}r.exports?r.exports=p:n.md5=p}(n)});module.exports=function(n,t,e){if(void 0===e&&(e=16),!n||!t||e<2||e>32)return null;for(var o=r(n,t),u=r(o,"kise").split(""),f=r(o,"snow").split(""),i=0;i<32;i++)isNaN(f[i])&&"sunlovesnow1990090127xykab".search(u[i])>-1&&(f[i]=f[i].toUpperCase());var c=f.join(""),a=c.slice(0,1);return(isNaN(a)?a:"K")+c.slice(1,e)};
//# sourceMappingURL=flowerpassword.js.map

@@ -5,8 +5,9 @@ {

"description": "Flower Password implementation for JavaScript",
"version": "1.0.4",
"version": "2.0.0",
"main": "dist/flowerpassword.js",
"umd:main": "dist/flowerpassword.umd.js",
"module": "dist/flowerpassword.m.js",
"source": "src/flowerpassword.js",
"files": [
"dist/flowerpassword.js",
"dist/flowerpassword.min.js",
"dist/flowerpassword.min.js.map",
"dist",
"src"

@@ -32,18 +33,15 @@ ],

"license": "MIT",
"dependencies": {},
"dependencies": {
"blueimp-md5": "latest"
},
"devDependencies": {
"babel-preset-es2015": "^6.18.0",
"blueimp-md5": "^2.6.0",
"del": "^2.2.2",
"gulp": "^3.9.1",
"gulp-babel": "^6.1.2",
"gulp-rename": "^1.2.2",
"gulp-sourcemaps": "^2.2.0",
"gulp-together": "^0.0.2",
"gulp-uglify": "^2.0.0"
"microbundle": "^0.9.0"
},
"scripts": {
"build": "npm install && gulp",
"start": "gulp watch"
"build": "microbundle --name fpCode --external blueimp-md5=md5",
"dev": "microbundle watch",
"release:major": "npm version major && npm publish",
"release:minor": "npm version minor && npm publish",
"release:patch": "npm version patch && npm publish"
}
}
# flowerpassword.js
Flower Password implementation for JavaScript.
> Flower Password implementation for JavaScript.
## Installation
```bash
$ npm install --save flowerpassword.js
```
$ npm install xlsdg/flowerpassword.js
```
## Usage
Include the (minified) JavaScript script:
```js
import fpCode from 'flowerpassword.js';
``` html
<script src="flowerpassword.min.js"></script>
console.log(fpCode('password', 'key', 16));
```
The **fpCode** method:
## License
``` html
var code = fpCode("password", "key", 16);
```
# License
MIT

@@ -1,41 +0,24 @@

;(function($, md5) {
'use strict';
/*
* Flower Password
*/
function fpCode(password, key, length) {
let hmd5, rule, source, str, code32, code01;
length = length || 16;
import MD5 from 'blueimp-md5';
if (!password || !key || (length < 2) || (length > 32)) {
return null;
}
export default function fpCode(password, key, length = 16) {
if (!password || !key || length < 2 || length > 32) {
return null;
}
hmd5 = md5(password, key);
rule = md5(hmd5, 'kise').split('');
source = md5(hmd5, 'snow').split('');
str = 'sunlovesnow1990090127xykab';
const hmd5 = MD5(password, key);
const rule = MD5(hmd5, 'kise').split('');
const source = MD5(hmd5, 'snow').split('');
const str = 'sunlovesnow1990090127xykab';
for (let i = 0; i < 32; i++) {
if (isNaN(source[i])) {
if (str.search(rule[i]) > -1) {
source[i] = source[i].toUpperCase();
}
}
}
code32 = source.join('');
code01 = code32.slice(0, 1);
return (isNaN(code01) ? code01 : 'K') + code32.slice(1, length);
for (let i = 0; i < 32; i++) {
if (isNaN(source[i])) {
if (str.search(rule[i]) > -1) {
source[i] = source[i].toUpperCase();
}
}
}
if (typeof define === 'function' && define.amd) {
define(function() {
return fpCode;
});
} else if (typeof module === 'object' && module.exports) {
module.exports = fpCode;
} else {
$.fpCode = fpCode;
}
}(this, md5));
const code32 = source.join('');
const code01 = code32.slice(0, 1);
return (isNaN(code01) ? code01 : 'K') + code32.slice(1, length);
}

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc