星空极速 加密算法(附本人C语言源代码)

星空极速 3.2 3.2 3.2 3.2 /3.3 /3.3 /3.3 /3.3 加密算法
花点时间研究下星空极速的加密算法。
比如你的账号密码是 : 734 , 通过研究现在我们已经得到数字 7 的加密字串是 “ E5 91 D7 AB 9A A4 B1 88 ” , . 数字 3 的加密字串是 “ E1 95 D3 AF 9E A0 B5 8C ” , 数字 4 的加密字串是 “ E6 92 D4 A8 99 A7 B2 8B ” , 我们可以看到每一个字符的加密字串是以两个字符为一组 , 共有八组的一串字符,帐号密码的第一个字符是 7 ,那么就取数字 7 的加密字串中的第一组字符 , 也就是 “ E5 ” ; 帐号密码的第二个字符是 3 , 那么就取数字 3 的加密字串中的第二组字符 , 也就是
“ 95 ” ; 帐号密码的第三个字符是 4 , 那么就取数字 4 的加密字串中的第三组字符 , 也就是 “ D4 ” 。
所以 734 加密以后的密码就是 “ E595D4 ”如果你的密码长度超过了 8 位 , 其取加密字串的方法就是减去 8 或是 8 的倍数 , 比如密码为: 1234567834 ,那么在第九位的 3 就是 9-8 = 1 ,取数字 3 的加密字串中的第一组字符,也就是 “ E1 ” ;第十位的 4 就是 10-8 = 2 ,取数字 4 的加密字串中的第二组字符,也就是 “ 92 ” 。我这都是以数字做密码,如果你的密码中有字母或是符号其方法也是跟上面一样的。
密码表:
. 常量 数字 1, " “ E397D1AD9CA2B78E ” "
. 常量 数字 2, " “ E094D2AE9FA1B48D ” "
. 常量 数字 3, " “ E195D3AF9EA0B58C ” "
. 常量 数字 4, " “ E692D4A899A7B28B ” "
. 常量 数字 5, " “ E793D5A998A6B38A ” "
. 常量 数字 6, " “ E490D6AA9BA5B089 ” "
. 常量 数字 7, " “ E591D7AB9AA4B188 ” "
. 常量 数字 8, " “ EA9ED8A495ABBE87 ” "
. 常量 数字 9, " “ EB9FD9A594AABF86 ” "
. 常量 数字 0, " “ E296D0AC9DA3B68F ” "
. 常量 字母 q, " “ A3D791EDDCE2F7CE ” "
. 常量 字母 w, " “ A5D197EBDAE4F1C8 ” "
. 常量 字母 e, " “ B7C385F9C8F6E3DA ” "
. 常量 字母 r, " “ A0D492EEDFE1F4CD ” "
. 常量 字母 t, " “ A6D294E8D9E7F2CB ” "
. 常量 字母 y, " “ ABDF99E5D4EAFFC6 ” "
. 常量 字母 u, " “ A7D395E9D8E6F3CA ” "
. 常量 字母 i, " “ BBCF89F5C4FAEFD6 ” "
. 常量 字母 o, " “ BDC98FF3C2FCE9D0 ” "
. 常量 字母 p, " “ A2D690ECDDE3F6CF ” "
. 常量 字母 a, " “ B3C781FDCCF2E7DE ” "
. 常量 字母 s, " “ A1D593EFDEE0F5CC ” "

. 常量 字母 d, " “ B6C284F8C9F7E2DB ” ". 

常量 字母 f, " “ B4C086FACBF5E0D9 ” "

. 常量 字母 g, " “ B5C187FBCAF4E1D8 ” "
. 常量 字母 h, " “ BACE88F4C5FBEED7 ” "
. 常量 字母 j, " “ B8CC8AF6C7F9ECD5 ” "
. 常量 字母 k, " “ B9CD8BF7C6F8EDD4 ” "
. 常量 字母 l, " “ BECA8CF0C1FFEAD3 ” "
. 常量 字母 z, " “ A8DC9AE6D7E9FCC5 ” "
. 常量 字母 x, " “ AADE98E4D5EBFEC7 ” "
. 常量 字母 c, " “ B1C583FFCEF0E5DC ” "
. 常量 字母 v, " “ A4D096EADBE5F0C9 ” "
. 常量 字母 b, " “ B0C482FECFF1E4DD ” "
. 常量 字母 n, " “ BCC88EF2C3FDE8D1 ” "
. 常量 字母 m, " “ BFCB8DF1C0FEEBD2 ” "
. 常量 字母大 Q, " “ 83F7B1CDFCC2D7EE ” "
. 常量 字母大 W, " “ 85F1B7CBFAC4D1E8 ” "
. 常量 字母大 E, " “ 97E3A5D9E8D6C3FA ” "
. 常量 字母大 R, " “ 80F4B2CEFFC1D4ED ” "
. 常量 字母大 T, " “ 86F2B4C8F9C7D2EB ” "
. 常量 字母大 Y, " “ 8BFFB9C5F4CADFE6 ” "
. 常量 字母大 U, " “ 87F3B5C9F8C6D3EA ” "
. 常量 字母大 I, " “ 9BEFA9D5E4DACFF6 ” "
. 常量 字母大 O, " “ 9DE9AFD3E2DCC9F0 ” "
. 常量 字母大 P, " “ 82F6B0CCFDC3D6EF ” "
. 常量 字母大 A, " “ 93E7A1DDECD2C7FE ” "
. 常量 字母大 S, " “ 81F5B3CFFEC0D5EC ” "
. 常量 字母大 D, " “ 96E2A4D8E9D7C2FB ” "
. 常量 字母大 F, " “ 94E0A6DAEBD5C0F9 ” "
. 常量 字母大 G, " “ 95E1A7DBEAD4C1F8 ” "
. 常量 字母大 H, " “ 9AEEA8D4E5DBCEF7 ” "
. 常量 字母大 J, " “ 98ECAAD6E7D9CCF5 ” "
. 常量 字母大 K, " “ 99EDABD7E6D8CDF4 ” "
. 常量 字母大 L, " “ 9EEAACD0E1DFCAF3 ” "
. 常量 字母大 Z, " “ 88FCBAC6F7C9DCE5 ” "
. 常量 字母大 X, " “ 8AFEB8C4F5CBDEE7 ” "
. 常量 字母大 C, " “ 91E5A3DFEED0C5FC ” "
. 常量 字母大 V, " “ 84F0B6CAFBC5D0E9 ” "
. 常量 字母大 B, " “ 90E4A2DEEFD1C4FD ” "
. 常量 字母大 N, " “ 9CE8AED2E3DDC8F1 ” "
. 常量 字母大 M, " “ 9FEBADD1E0DECBF2 ” "
. 常量 特殊符号 0, " “ ACD89EE2D3EDF8C1 ” ", , ~
. 常量 特殊符号 1, " “ F387C1BD8CB2A79E ” ", , !
. 常量 特殊符号 2, " “ 92E6A0DCEDD3C6FF ” ", , @
. 常量 特殊符号 3, " “ F185C3BF8EB0A59C ” ", , #. 常量 特殊符号 4, " “ F682C4B889B7A29B ” ", , $
. 常量 特殊符号 5, " “ F783C5B988B6A39A ” ", , %
. 常量 特殊符号 6, " “ 8CF8BEC2F3CDD8E1 ” ", , ^
. 常量 特殊符号 7, " “ F480C6BA8BB5A099 ” ", , &
. 常量 特殊符号 8, " “ F88CCAB687B9AC95 ” ", , *
. 常量 特殊符号 9, " “ FA8EC8B485BBAE97 ” ", , (
. 常量 特殊符号 10, " “ FB8FC9B584BAAF96 ” ", , )
. 常量 特殊符号 11, " “ 8DF9BFC3F2CCD9E0 ” ", , _
. 常量 特殊符号 12, " “ F98DCBB786B8AD94 ” ", , +
. 常量 特殊符号 13, " “ A9DD9BE7D6E8FDC4 ” ", , {
. 常量 特殊符号 14, " “ AFDB9DE1D0EEFBC2 ” ", , }
. 常量 特殊符号 15, " “ AEDA9CE0D1EFFAC3 ” ", , |
. 常量 特殊符号 16, " “ E89CDAA697A9BC85 ” ", , :
. 常量 特殊符号 17, " “ F084C2BE8FB1A49D ” ", , "
. 常量 特殊符号 18, " “ EE9ADCA091AFBA83 ” ", , <
. 常量 特殊符号 19, " “ EC98DEA293ADB881 ” ", , >
. 常量 特殊符号 20, " “ ED99DFA392ACB980 ” ", , ?
. 常量 特殊符号 21, " “ 89FDBBC7F6C8DDE4 ” ", , [
. 常量 特殊符号 22, " “ 8FFBBDC1F0CEDBE2 ” ", , ]
. 常量 特殊符号 23, " “ 8EFABCC0F1CFDAE3 ” ", , \
. 常量 特殊符号 24, " “ E99DDBA796A8BD84 ” ", , ;
. 常量 特殊符号 25, " “ F581C7BB8AB4A198 ” ", , '
. 常量 特殊符号 26, " “ FE8ACCB081BFAA93 ” ", , ,
. 常量 特殊符号 27, " “ FC88CEB283BDA891 ” ", , .
. 常量 特殊符号 28, " “ FD89CFB382BCA990 ” ", , /
. 常量 特殊符号 29, " “ FF8BCDB180BEAB92 ” ", , -

. 常量 特殊符号 30, " “ EF9BDDA190AEBB82 ” ", , =

//=====================passwd.c======================//

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<conio.h>
void show();
char in[20];//输入的密码
char out[50];//真实的密码
 
//===========密码表==================//
char b[93][17]={"E397D1AD9CA2B78E",
	"E094D2AE9FA1B48D",
	"E195D3AF9EA0B58C",
	"E692D4A899A7B28B",
	"E793D5A998A6B38A",
	"E490D6AA9BA5B089",
	"E591D7AB9AA4B188",
	"EA9ED8A495ABBE87",
	"EB9FD9A594AABF86",
	"E296D0AC9DA3B68F",
	"A3D791EDDCE2F7CE",
	"A5D197EBDAE4F1C8",
	"B7C385F9C8F6E3DA",
	"A0D492EEDFE1F4CD",
	"A6D294E8D9E7F2CB",
	"ABDF99E5D4EAFFC6",
	"A7D395E9D8E6F3CA",
	"BBCF89F5C4FAEFD6",
	"BDC98FF3C2FCE9D0",
	"A2D690ECDDE3F6CF",
	"B3C781FDCCF2E7DE",
	"A1D593EFDEE0F5CC",
	"B6C284F8C9F7E2DB",
	"B4C086FACBF5E0D9",
	"B5C187FBCAF4E1D8",
	"BACE88F4C5FBEED7",
	"B8CC8AF6C7F9ECD5",
	"B9CD8BF7C6F8EDD4",
	"BECA8CF0C1FFEAD3",
	"A8DC9AE6D7E9FCC5",
	"AADE98E4D5EBFEC7",
	"B1C583FFCEF0E5DC",
	"A4D096EADBE5F0C9",
	"B0C482FECFF1E4DD",
	"BCC88EF2C3FDE8D1",
	"BFCB8DF1C0FEEBD2",
	"83F7B1CDFCC2D7EE",
	"85F1B7CBFAC4D1E8",
	"97E3A5D9E8D6C3FA",
	"80F4B2CEFFC1D4ED",
	"86F2B4C8F9C7D2EB",
	"8BFFB9C5F4CADFE6","87F3B5C9F8C6D3EA","9BEFA9D5E4DACFF6","9DE9AFD3E2DCC9F0","82F6B0CCFDC3D6EF","93E7A1DDECD2C7FE","81F5B3CFFEC0D5EC","96E2A4D8E9D7C2FB",
	"94E0A6DAEBD5C0F9","95E1A7DBEAD4C1F8","9AEEA8D4E5DBCEF7","98ECAAD6E7D9CCF5","99EDABD7E6D8CDF4","9EEAACD0E1DFCAF3","88FCBAC6F7C9DCE5","8AFEB8C4F5CBDEE7",
	"91E5A3DFEED0C5FC","84F0B6CAFBC5D0E9","90E4A2DEEFD1C4FD","9CE8AED2E3DDC8F1","9FEBADD1E0DECBF2","ACD89EE2D3EDF8C1","F387C1BD8CB2A79E","92E6A0DCEDD3C6FF",
	"F185C3BF8EB0A59C","F682C4B889B7A29B","F783C5B988B6A39A","8CF8BEC2F3CDD8E1","F480C6BA8BB5A099","F88CCAB687B9AC95","FA8EC8B485BBAE97","FB8FC9B584BAAF96",
	"8DF9BFC3F2CCD9E0","F98DCBB786B8AD94","A9DD9BE7D6E8FDC4","AFDB9DE1D0EEFBC2","AEDA9CE0D1EFFAC3","E89CDAA697A9BC85","F084C2BE8FB1A49D","EE9ADCA091AFBA83",
	"EC98DEA293ADB881","ED99DFA392ACB980","89FDBBC7F6C8DDE4","8FFBBDC1F0CEDBE2","8EFABCC0F1CFDAE3","E99DDBA796A8BD84","F581C7BB8AB4A198","FE8ACCB081BFAA93",
	"FC88CEB283BDA891","FD89CFB382BCA990","FF8BCDB180BEAB92","EF9BDDA190AEBB82"};
//===============end==================//
 
int main(){
	FILE *fp;
	int i;
	int n;
	int m;
	//======================输入的密码在密码表中的位置=====================================================//
	char a[93]="1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM";
	a[62]='~';a[63]='!';a[64]='@';a[65]='#';a[66]='$';a[67]='%';a[68]='^';
	a[69]='&';a[70]='*';a[71]='(';a[72]=')';a[73]='_';a[74]='+';a[75]='{';
	a[76]='}';a[77]='|';a[78]=':';a[79]='\"';a[80]='<';a[81]='>';a[82]='\?';
	a[83]='[';a[84]=']';a[85]='\\';a[86]=';';a[87]='\'';a[88]=',';	a[89]='.';
	a[90]='/';a[91]='-';a[92]='=';
	//================================end==================================//
	if((fp=fopen("c:\\pass.txt","w+"))==NULL){
		printf("cannot open the file:c:\\pass.txt\n");
		exit(0);
	}
	show();
	printf("please input your  password:\n");
	scanf("%s",&in);
//===========破解方法==========//
	for(i=0;in[i] != '\0';i++)
	{
		for(n = 0;n < 93; n++)
		{
			if(in[i] == a[n])  //查找字符在密码表中的位置
			{
				m = i % 8;  //超过8位的密码,密码位置向前覆盖//第8位的密码,对应位置是第0位
				out[2 * i] = b[n][m * 2];
				out[2 * i + 1] = b[n][m * 2 + 1];
			}
		}
	}
	out[2*i] = '\0';
	//=============end============//
	printf("your realy password is:");
	printf("%s",out);
	printf("\n please remeber the really password!,and it will be save in c:\\pass.txt");
	fprintf(fp,"%s",out);
	fclose(fp);
	getchar();
	getchar();
	return 0;
}
void show(){
	printf("\n*****************欢迎使用星空极速度密码破解工具**********************\n");
	printf("\n\n\n使用方法:输入电信网卡上面的8位星空极速密码,\n");
	printf("\n然后真实的星空极速密码生成在C盘的根目录下的PASS.TXT里面\n");
	printf("\n您可以使用此密码路由器共享上网和宽带拨号,拨号账号为您的星空极速的账号前面加上\'^^\'!\n");
	printf("\n***************作者:gifter  QQ:420937534\n*****************************\n");
	printf("++++++++++++++++版权所有。。。。。翻版必究+++++++++++++++++++++++++++++++++++\n");
}
 
 
 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
3DES(或称为Triple DES)是三重数据加密算法(TDEA,Triple Data Encryption Algorithm)块密码的通称。它相当于是对每个数据块应用三次DES加密算法。 最早的定义了该算法的标准(ANS X9.52,1998年发布)将其描述为“三重数据加密算法(TDEA)”— 即为ANSI X3.92中定义的数据加密算法(DEA)的三次重复操作— 而完全没有使用术语“3DES”或“DES”。FIPS PUB 46-3(1999)定义了“三重数据加密算法”(TDEA),也使用了术语“Triple DES”和“DES”。该标准中互换的使用“数据加密算法”(DEA)和“DES”的概念,其中以此开始DES的定义: 数据加密标准(DES)应当包括下文中的数据加密算法(DES[4])与三重数据加密算法(TDEA,如ANSI X9.52中所描述的) NIST SP 800-67(2004,2008[5])主要使用术语TDEA,但也提到了“Triple DES(TDEA)”。ISO/IEC 18033-3(2005)使用“TDEA”,但其中提到: TDEA通称Triple DES(数据加密标准)。 没有一个定义了本算法的标准使用术语“3DES”。 3DESughhhg34465345556555678==算法== 3DES使用“密钥包”,其包含3个DES密钥,K1,K2和K3,均为56位(除去奇偶校验位)。加密算法为: 密文 = EK3(DK2(EK1(平文))) 也就是说,使用K1为密钥进行DES加密,再用K2为密钥进行DES“解密”,最后以K3进行DES加密。 而解密则为其反过程: 平文 = DK1(EK2(DK3(密文))) 即以K3解密,以K2“加密”,最后以K1解密。 每次加密操作都只处理64位数据,称为一块。 无论是加密还是解密,中间一步都是前后两步的逆。这种做法提高了使用密钥选项2时的算法强度,并在使用密钥选项3时与DES兼容。 密钥选项[编辑] 标准定义了三种密钥选项: 密钥选项1:三个密钥是独立的。 密钥选项2:K1和K2是独立的,而K3=K1 密钥选项3:三个密钥均相等,即K1=K2=K3 密钥选项1的强度最高,拥有3 x 56 = 168个独立的密钥位。 密钥选项2的安全性稍低,拥有2 x 56 = 112个独立的密钥位。该选项比简单的应用DES两次的强度较高,即使用K1和K2,因为它可以防御中途相遇攻击。 密钥选项3等同与DES,只有56个密钥位。这个选项提供了与DES的兼容性,因为第1和第2次DES操作相互抵消了。该选项不再为国家标准科技协会(NIST)所建议[6],亦不为ISO/IEC 18033-3所支持。
``` <!DOCTYPE html> <html> <head> <title></title> </head> <style> * { padding: 0; margin: 0; } html, body { height: 100%; padding: 0; margin: 0; background: #000; } canvas { position: absolute; width: 100%; height: 100%; } .aa { position: fixed; left: 50%; bottom: 10px; color: #ccc; } </style> <body> <canvas id="pinkboard"></canvas> <script> /* * Settings */ var settings = { particles: { length: 500, // maximum amount of particles duration: 2, // particle duration in sec velocity: 100, // particle velocity in pixels/sec effect: -0.75, // play with this for a nice effect size: 30 // particle size in pixels } }; /* * RequestAnimationFrame polyfill by Erik M?ller */ (function () { var b = 0; var c = ["ms", "moz", "webkit", "o"]; for (var a = 0; a < c.length && !window.requestAnimationFrame; ++a) { window.requestAnimationFrame = window[c[a] + "RequestAnimationFrame"]; window.cancelAnimationFrame = window[c[a] + "CancelAnimationFrame"] || window[c[a] + "CancelRequestAnimationFrame"]; } if (!window.requestAnimationFrame) { window.requestAnimationFrame = function (h, e) { var d = new Date().getTime(); var f = Math.max(0, 16 - (d - b)); var g = window.setTimeout(function () { h(d + f); }, f); b = d + f; return g; }; } if (!window.cancelAnimationFrame) { window.cancelAnimationFrame = function (d) { clearTimeout(d); }; } })(); /* * Point class */ var Point = (function () { function Point(x, y) { this.x = typeof x !== "undefined" ? x : 0; this.y = typeof y !== "undefined" ? y : 0; } Point.prototype.clone = function () { return new Point(this.x, this.y); }; Point.prototype.length = function (length) { if (typeof length == "undefined") return Math.sqrt(this.x * this.x + this.y * this.y); this.normalize(); this.x *= length; this.y *= length; return this; }; Point.prototype.normalize = function () { var length = this.length(); this.x /= length; this.y /= length; return this; }; return Point; })(); /* * Particle class */ var Particle = (function () { function Particle() { this.position = new Point(); this.velocity = new Point(); this.acceleration = new Point(); this.age = 0; } Particle.prototype.initialize = function (x, y, dx, dy) { this.position.x = x; this.position.y = y; this.velocity.x = dx; this.velocity.y = dy; this.acceleration.x = dx * settings.particles.effect; this.acceleration.y = dy * settings.particles.effect; this.age = 0; }; Particle.prototype.update = function (deltaTime) { this.position.x += this.velocity.x * deltaTime; this.position.y += this.velocity.y * deltaTime; this.velocity.x += this.acceleration.x * deltaTime; this.velocity.y += this.acceleration.y * deltaTime; this.age += deltaTime; }; Particle.prototype.draw = function (context, image) { function ease(t) { return --t * t * t + 1; } var size = image.width * ease(this.age / settings.particles.duration); context.globalAlpha = 1 - this.age / settings.particles.duration; context.drawImage( image, this.position.x - size / 2, this.position.y - size / 2, size, size ); }; return Particle; })(); /* * ParticlePool class */ var ParticlePool = (function () { var particles, firstActive = 0, firstFree = 0, duration = settings.particles.duration; function ParticlePool(length) { // create and populate particle pool particles = new Array(length); for (var i = 0; i < particles.length; i++) particles[i] = new Particle(); } ParticlePool.prototype.add = function (x, y, dx, dy) { particles[firstFree].initialize(x, y, dx, dy); // handle circular queue firstFree++; if (firstFree == particles.length) firstFree = 0; if (firstActive == firstFree) firstActive++; if (firstActive == particles.length) firstActive = 0; }; ParticlePool.prototype.update = function (deltaTime) { var i; // update active particles if (firstActive < firstFree) { for (i = firstActive; i < firstFree; i++) particles[i].update(deltaTime); } if (firstFree < firstActive) { for (i = firstActive; i < particles.length; i++) particles[i].update(deltaTime); for (i = 0; i < firstFree; i++) particles[i].update(deltaTime); } // remove inactive particles while ( particles[firstActive].age >= duration && firstActive != firstFree ) { firstActive++; if (firstActive == particles.length) firstActive = 0; } }; ParticlePool.prototype.draw = function (context, image) { // draw active particles if (firstActive < firstFree) { for (i = firstActive; i < firstFree; i++) particles[i].draw(context, image); } if (firstFree < firstActive) { for (i = firstActive; i < particles.length; i++) particles[i].draw(context, image); for (i = 0; i < firstFree; i++) particles[i].draw(context, image); } }; return ParticlePool; })(); /* * Putting it all together */ (function (canvas) { var context = canvas.getContext("2d"), particles = new ParticlePool(settings.particles.length), particleRate = settings.particles.length / settings.particles.duration, // particles/sec time; // get point on heart with -PI <= t <= PI function pointOnHeart(t) { return new Point( 160 * Math.pow(Math.sin(t), 3), 130 * Math.cos(t) - 50 * Math.cos(2 * t) - 20 * Math.cos(3 * t) - 10 * Math.cos(4 * t) + 25 ); } // creating the particle image using a dummy canvas var image = (function () { var canvas = document.createElement("canvas"), context = canvas.getContext("2d"); canvas.width = settings.particles.size; canvas.height = settings.particles.size; // helper function to create the path function to(t) { var point = pointOnHeart(t); point.x = settings.particles.size / 2 + (point.x * settings.particles.size) / 350; point.y = settings.particles.size / 2 - (point.y * settings.particles.size) / 350; return point; } // create the path context.beginPath(); var t = -Math.PI; var point = to(t); context.moveTo(point.x, point.y); while (t < Math.PI) { t += 0.01; // baby steps! point = to(t); context.lineTo(point.x, point.y); } context.closePath(); // create the fill context.fillStyle = "#ea80b0"; context.fill(); // create the image var image = new Image(); image.src = canvas.toDataURL(); return image; })(); // render that thing! function render() { // next animation frame requestAnimationFrame(render); // update time var newTime = new Date().getTime() / 1000, deltaTime = newTime - (time || newTime); time = newTime; // clear canvas context.clearRect(0, 0, canvas.width, canvas.height); // create new particles var amount = particleRate * deltaTime; for (var i = 0; i < amount; i++) { var pos = pointOnHeart(Math.PI - 2 * Math.PI * Math.random()); var dir = pos.clone().length(settings.particles.velocity); particles.add( canvas.width / 2 + pos.x, canvas.height / 2 - pos.y, dir.x, -dir.y ); } // update and draw particles particles.update(deltaTime); particles.draw(context, image); } // handle (re-)sizing of the canvas function onResize() { canvas.width = canvas.clientWidth; canvas.height = canvas.clientHeight; } window.onresize = onResize; // delay rendering bootstrap setTimeout(function () { onResize(); render(); }, 10); })(document.getElementById("pinkboard")); </script> </body> </html> ``` ![示例图片](https://devbit-static.oss-cn-beijing.aliyuncs.com/devbit-static/img/heart.png)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

q472599451

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值