I've a sneeking suspicion that it might be impossible - in some naïve way I expect the encrypted string to hold more information than the plain text - it includes some knowledge about the password too - so it must be longer. Is anyone out there up on information theory?

Vague ideas for solving your problem:
- map your number onto a shorter text string: two digits could map into one character using CHR(nn). How big is a CHAR(8) when encrypted?
- can you avoid encrypting the first x digits? AFAIK, they only indicate the card type (VISA, AmEx etc).
- what are the possibilties for encrypting it as an integer rather than text?