Calcul de clef rib

Contenu du snippet

Bonjour,

Cette petite source vous permettra de calculer une clé RIB

En entrée, vous transmettez un pointeur de chaine
21 caractères minimum, le RIB fourni peut contenir la clé, elle ne sera pas touchée ni vérifiée...

en sortie, renvoie 1 si le calcul a eu lieu, et dans la chaine (3 caractères minimum) pointée par le second argument, on place... la clé

Source / Exemple :


long atoln(int n, const char* s) {
	long v=0;
	char* p = s;
	while(n-->0)
		v = v*10 + *(p++)-'0';
	return v;
}

unsigned int computeRIBkey(char* s, char* key) {
	int i;
	char r[21];

	if (!s || !key)
		return 0;

	for (i=0; i<21; i++)
		if(s[i]>='0' && s[i]<='9')
			r[i] = s[i];
		else if(s[i]>='a' && s[i]<='z')
			r[i] = '1' + (s[i]-'a')%9;
		else if(s[i]>='A' && s[i]<='Z')
			r[i] = '1' + (s[i]-'A')%9;
		else
			return 0;

	i = 97-((89*atoln(5, r) + 15*atoln(5, r+5) + 3*atoln(11, r+10))%97);
	if (i<10)
		key[0] = '0';
	else
		key[0] = '0'+i/10;
	key[1] = '0'+i%10;
	key[2] = 0;
	return 1;
}

Conclusion :


Après avoir beaucoup utilisé ce site, j'ai piqué la formule ici :
http://marlot.org/util/calcul-de-la-cle-rib.php

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.