<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<title></title>

	<style type="text/css">
		html{
			height: 100vh;
		}
		body {
			display: flex;
			height: 100vh;
		}

		#wrapper {
	    display: flex;
	    justify-content: center;
	    align-items: center;
	    margin: auto;
			border: 1px solid #ddd;
			border-radius: 10px;
			padding: 10px;
		}
		form div{
			margin: 5px;
		}

		input[type=radio] {
			display: inline-block;
		}

		input:not([type=radio]), textarea {
			width: 300px;
			display: block;
			border: 1px solid #ddd;
			border-radius: 10px;
			padding: 10px;
		}
	</style>
</head>
<body onload="generate()">


<div id="wrapper">
<form>
	<div>
		<label>secret</label>
		<input type="text" name="secret" value="happyhappyfaceloyeezz" oninput="generate()"/>
	</div>
	<div>
		<label>machine_id</label>
		<input type="text" name="machine_id" value="1710617043" oninput="generate()" />
	</div>
	<div>
		<label>
			<input onchange="generate()" type="radio" name="type" value="lifetime">lifetime
		</label>
		<label>
			<input onchange="generate()" type="radio" name="type" value="expired" checked>expired
		</label>
	</div>
	<div>
		<label>days</label>
		<input type="text" name="days" value="30" oninput="generate()"/>
	</div>
	<div>
		<textarea readonly onclick="copy()" id="output" rows="10"></textarea>
	</div>
</form>	
</div>

<script type="text/javascript">
function crc32(e){var n,t,o,c=arguments.length<2?79764919:arguments[1],r=arguments.length<3?4294967295:arguments[2],u=arguments.length<4?4294967295:arguments[3],l=r,a=[];function i(e,n){for(var t=0;n;)t=2*t+e%2,e=(e/=2)-e%1,n--;return t}for(n=256;0<=n;n--){for(o=i(n,32),t=0;t<8;t++)o=(2*o^(o>>>31)%2*c)>>>0;a[n]=i(o,32)}for(n=0;n<e.length;n++){if(255<(o=e.charCodeAt(n)))throw new RangeError;l=(l/256^a[t=l%256^o])>>>0}return(l^u)>>>0}function copy(){document.getElementById("output").select(),document.execCommand("copy"),alert("copied!")}function generate(){var e=document.querySelector('input[name="secret"]').value,n=document.querySelector('input[name="machine_id"]').value,t=document.querySelector('input[name="type"]:checked').value,o=document.querySelector('input[name="days"]').value,c=document.querySelector("#output");console.log(e),console.log(n),console.log(t),"lifetime"==t?(t=crc32(""+e+n+"-LIFETIME"),c.innerHTML=t+"-LIFETIME"):(n=crc32(""+e+n+`-${t=Math.floor(Date.now()/1e3)}-`+(e=t+24*o*60*60)),c.innerHTML=n+`-${t}-`+e)}
</script>

</body>
</html>