public IMessage crypter(IMessage clair, String key) {
		/*
		 * La mthode lit d'abord la cl, puis  adapate et
		 * parcourt le message afin de transmettre les caractres
		 * correspondant  des lettres deux  deux 
		 * la mthode coderChar tout en recopiant les caracteres
		 * contenus dans IGNORE
		 */
		long d=new Date().getTime();
		IMessage cc=this.adapter(clair);
		char[][] c=this.remplirTabChar(key);
		char c1=' '; int r1=0;
		char c2=' '; int r2=0;
		boolean act=true;
		char[] nouveau=new char[cc.taille()];
		for(int i=0;i<cc.taille();i=i+2) {
			if(i!=cc.taille()-1) {
				r1=0;
				r2=0;
				act=true;
				if(IGNORE.contains(cc.getChar(i))) {
					if(!IGNORE.contains(cc.getChar(i+1))) {
						if(!IGNORE.contains(cc.getChar(i+2))) {
							c1=cc.getChar(i+1);
							c2=cc.getChar(i+2);
							r1=1;
							r2=1;
							nouveau[i]=cc.getChar(i);
						}
						else {
							act=false;
							nouveau[i]=cc.getChar(i);
							i--;
						}
					}
					else {
						nouveau[i]=cc.getChar(i);
						nouveau[i+1]=cc.getChar(i+1);
						act=false;
					}
				}
				else {
					if(IGNORE.contains(cc.getChar(i+1))) {
						c1=cc.getChar(i);
						c2=cc.getChar(i+2);
						r1=0;
						r2=1;
						nouveau[i+1]=cc.getChar(i+1);
					}
					else {
						c1=cc.getChar(i);
						c2=cc.getChar(i+1);
					}
				}
				if(act) {
					this.coderChar(c1, c2,c);
					nouveau[i+r1]=this.t1;
					nouveau[i+1+r2]=this.t2;
					if(r1==1 || r2==1) {
						i++;
					}

				}
			}
			else {
				if(IGNORE.contains(cc.getChar(i))) {
					nouveau[i]=cc.getChar(i);
				}
			}
		}
		this.time=new Date().getTime()-d;
		return Fabrique.fabriquerMessage(nouveau);
	}